使用R清理数据

时间:2015-07-15 09:24:00

标签: r

我有一个名为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

1 个答案:

答案 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