0
我有一个数据框有20列。我需要过滤/去除一列中的噪音。使用卷积函数进行过滤后,我得到一个新的向量值。由于过滤过程,原始列中的许多值变为NA。问题是我需要整个表(用于以后的分析),只有那些过滤列具有值的行,但我无法将过滤列绑定到原始表,因为两者的行数不同。让我们在R SET '橙' 的数据我是在使用 '年龄' 一栏:如何在R中的现有表中仅筛选一列后获取新表?
> head(Orange)
Tree age circumference
1 1 118 30
2 1 484 58
3 1 664 87
4 1 1004 115
5 1 1231 120
6 1 1372 142
卷积过滤器使用
smooth <- function (x, D, delta){
z <- exp(-abs(-D:D/delta))
r <- convolve (x, z, type='filter')/convolve(rep(1, length(x)),z,type='filter')
r <- head(tail(r, -D), -D)
r
}
过滤 '年龄' 一栏
age2 <- smooth(Orange$age, 5,10)
data.frame(age2)
数年龄栏和age2栏的行数分别为35和15。原始数据集还有2列,我也喜欢与他们合作。现在,我只需要对应于15行age2列的每列中的15行。这里的过滤器从年龄栏中删除了第一个和最后十个值。我如何应用筛选器,以便获得包含所有列和筛选行的截断数据集?
其实,使用卷积功能中,只有数据值,输出给无NA的后。你所建议的在这种情况下是好的,但在我的原始数据集中有几辆车在过滤之后将有前十行和后十行被移除。在Orange数据集中,这意味着对于特定类别的“树”,例如2几个值将从顶部和底部删除。这对所有类别都是重复的。我知道过滤值应该如何排列(例如,为每个树类别移除了第一个和最后2个值),但不知道如何在R –
@Umair中执行此操作现在我不确定是否需要+/- 10或从df的顶部或底部移除+/- 2。看到我的答案编辑。如果这不能回答你的问题,请给出一个完整的例子和所需的输出。 – Vincent
谢谢!有用。 –