R 替换NA零数据帧:代码不工作
我正在寻找一种方法,将我的数据帧中的NA替换为零,并在这里找到了一个很好的答案: 我使用aL3xa答案中的代码构建了一个示例矩阵,发现NA被替换得很好。 但是,当我开始将代码应用于我自己的数据帧时,它似乎不起作用: 总金额(不适用(日分)) [1] 453562R 替换NA零数据帧:代码不工作,r,R,我正在寻找一种方法,将我的数据帧中的NA替换为零,并在这里找到了一个很好的答案: 我使用aL3xa答案中的代码构建了一个示例矩阵,发现NA被替换得很好。 但是,当我开始将代码应用于我自己的数据帧时,它似乎不起作用: 总金额(不适用(日分)) [1] 453562 数据帧本质上是具有相同长度的向量列表。如果要更改数据帧中的元素,必须将更改应用于列出的向量之一。您可以通过调用数据帧对象(df)来实现这一点,就像它是一个具有命名列的矩阵一样: df[is.na(df$dat.sub),"dat.s
数据帧本质上是具有相同长度的向量列表。如果要更改数据帧中的元素,必须将更改应用于列出的向量之一。您可以通过调用数据帧对象(
df
)来实现这一点,就像它是一个具有命名列的矩阵一样:
df[is.na(df$dat.sub),"dat.sub"]<-0
df[is.na(df$dat.sub),“dat.sub”]该命令适用于正确的数据帧:
ddf = structure(list(A = c(1L, NA, 3L), B = c(NA, 5L, NA), C = c(5L,
NA, 7L)), .Names = c("A", "B", "C"), class = "data.frame", row.names = c(NA,
-3L))
str(ddf)
'data.frame': 3 obs. of 3 variables:
$ A: num 1 0 3
$ B: num 0 5 0
$ C: num 5 0 7
ddf
A B C
1 1 NA 5
2 NA 5 NA
3 3 NA 7
ddf[is.na(ddf)] =0
ddf
A B C
1 1 0 5
2 0 5 0
3 3 0 7
您需要提供。如果无法将0
强制为dat.sub
列类,则它将无法正常工作。您的所有列是否都是因子
?@celiomsj正常,但可能会出现一些警告消息?@agenis是的,它会生成警告。@qwerty正常,所以您是否可以执行dat.sub这不是完全正确的,类似于df[is.na(df)]=0的功能非常好。
ddf = structure(list(A = c(1L, NA, 3L), B = c(NA, 5L, NA), C = c(5L,
NA, 7L)), .Names = c("A", "B", "C"), class = "data.frame", row.names = c(NA,
-3L))
str(ddf)
'data.frame': 3 obs. of 3 variables:
$ A: num 1 0 3
$ B: num 0 5 0
$ C: num 5 0 7
ddf
A B C
1 1 NA 5
2 NA 5 NA
3 3 NA 7
ddf[is.na(ddf)] =0
ddf
A B C
1 1 0 5
2 0 5 0
3 3 0 7