我想删除data.frame中单个单元格的值。该值是一个因子(数字)
我试图像这样访问这个值:
which(colnames(df) == "variable.name")
which(rownames(df) == "row.name")
df[i, j] <- NULL
我也试图通过&lt; - is.na来制作一个NA,这也不行。我该怎么做?
答案 0 :(得分:1)
NULL和NA之间存在显着差异。
NULL
是对象,通常用于表示变量不包含任何对象。
NA
是值,通常表示“此处缺少数据项”。
总的来说,数据帧是等长矢量的列表。虽然R列表是可以包含其他对象的对象,但R矢量是一个只能包含值的对象。因此,您可以拥有NULL列表,但不能有NULL向量。
在您的示例中,您尝试将NULL对象放入向量对象(df$j
或df[,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)