如何删除data.frame中的单个值

时间:2013-10-21 13:12:03

标签: r dataframe unique na

我想删除data.frame中单个单元格的值。该值是一个因子(数字)

我试图像这样访问这个值:

which(colnames(df) == "variable.name")
which(rownames(df) == "row.name")

df[i, j] <- NULL

我也试图通过&lt; - is.na来制作一个NA,这也不行。我该怎么做?

2 个答案:

答案 0 :(得分:1)

NULL和NA之间存在显着差异。

NULL对象,通常用于表示变量不包含任何对象。

NA,通常表示“此处缺少数据项”。

总的来说,数据帧是等长矢量的列表。虽然R列表是可以包含其他对象的对象,但R矢量是一个只能包含值的对象。因此,您可以拥有NULL列表,但不能有NULL向量。

在您的示例中,您尝试将NULL对象放入向量对象(df$jdf[,j]df[[j]]),这是数据框的一部分。由于矢量对象不能包含其他对象(仅限值),因此分配失败。

如评论中所述,df[i, j] <- NA会将NA值放在所需位置的数据框中。这可能是表示空虚的最佳方式。

答案 1 :(得分:0)

感谢您分享代码。我尝试过,但是出现了一些错误。 我尝试将单元格值从“无”更改为NA,然后将变量转换为数字:

levels(data$Impact.Factor)
which(colnames(data) == "Impact.Factor")
#which(rownames(data) =="None" )--> did not work
which(grepl("None", data$Impact.Factor))
#df[row,column] <- NA
data[ 203,12] <- NA
data$Impact.Factor<-as.numeric(data$Impact.Factor)