我有一个名为NCM
的变量,这是一个数字问题。所以那些回答> = 3的人我需要清除变量Mbrand
的数据,清理的数据应该存储在新的数据帧中。因此我尝试使用函数filter
,遗憾的是我收到了一个错误“没有适用于'filter_'的方法应用于类”list“的对象。因此,我要求让我知道R中是否有其他替代方法 - 因为我是R的新手。
这是数据。
NCM <- c(5,1,3,2,4)
Mbrand <- c(1,5,3,4,2)
data <- data.frame(NCM,Mbrand)
data$Mbrand <- factor(data$Mbrand, levels = c(1,5,3,4,2),
labels = c("Brand1", "Brand5", "Brand3", "Brand4", "Brand2"))
最后输出应为
NCM Mbrand
5 Brand1
1
3 Brand3
2
4 Brand2
答案 0 :(得分:0)
如果要更换&#39; Mbrand&#39;根据“NCM&#39;”中的条件,我们可以将其更改为“NA&#39; NA&#39;因为使用is.na/na.omit/complete.cases
等进行子集化更容易。
is.na(data$Mbrand) <- data$NCM <3
或者
data$Mbrand[data$NCM<3] <- NA
如果我们需要将值替换为''
,那么我们必须转换为&#39;字符&#39;上课或将''
列为&#39;等级&#39;在&#39; Mbrand&#39;在将值更改为''
之前。
levels(data$Mbrand) <- c(levels(data$Mbrand), '')
data$Mbrand[data$NCM<3] <- ''
如果您需要根据条件subset
数据集
data1 <- subset(data, NCM>=3)
或者,如果您需要在替换值后将整个数据集存储为不同的对象,只需将其分配给不同的对象
data2 <- data1
data2$Mbrand[data2$NCM<3] <- NA
data2