从R中的特定列开始替换数据框中的NA
我正在学习R,我在尝试替换数据框中的na值时遇到了一个问题,该数据框不包括流程中的前2列。 我这样做:从R中的特定列开始替换数据框中的NA,r,dataframe,R,Dataframe,我正在学习R,我在尝试替换数据框中的na值时遇到了一个问题,该数据框不包括流程中的前2列。 我这样做: # example data.frame v1<-c("a","b","c","d") v2<-c(3,3,NA,NA) v3<-c(1,NA,1,1) v4<-c(1,NA,1,NA) v5<-c(1,0,NA,NA) df<-data.frame(v1,v2,v3,v4,v5) df #fal is a Matrix with only FALSE
# example data.frame
v1<-c("a","b","c","d")
v2<-c(3,3,NA,NA)
v3<-c(1,NA,1,1)
v4<-c(1,NA,1,NA)
v5<-c(1,0,NA,NA)
df<-data.frame(v1,v2,v3,v4,v5)
df
#fal is a Matrix with only FALSE
fal <- data.frame(matrix(ncol = 2, nrow = nrow(df), FALSE))
fal
m <- cbind(fal,is.na(df[,3:5]))
df[m]<-0
矩阵是这样的:
v1 v2 v3 v4 v5
1 a 3 1 1 1
2 b 3 NA NA 0
3 c NA 1 1 NA
4 d NA 1 NA NA
X1 X2 v3 v4 v5
1 FALSE FALSE FALSE FALSE FALSE
2 FALSE FALSE TRUE TRUE FALSE
3 FALSE FALSE FALSE FALSE TRUE
4 FALSE FALSE FALSE TRUE TRUE
有人能帮我吗?试试这个:
df[,3:5][is.na(df[,3:5])] <-0
df[,3:5][is.na(df[,3:5])]m
不是矩阵,而是数据帧
df[as.matrix(m)] <- 0
df
## v1 v2 v3 v4 v5
## 1 a 3 1 1 1
## 2 b 3 0 0 0
## 3 c NA 1 1 0
## 4 d NA 1 0 0
df[as.matrix(m)]如果你想替换所有的NA
s,你可以简单地做df[is.NA(df)]这只是一个示例矩阵,我实际上在第一列中有一些NA应该保留在那里。如果我尝试运行我的代码,我会得到:Error in FUN(X[[I]],…):仅在包含所有数值变量的数据帧上定义。请将此错误消息添加到问题中。让你的问题更清楚