Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的特定列开始替换数据框中的NA_R_Dataframe - Fatal编程技术网

从R中的特定列开始替换数据框中的NA

从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

我正在学习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
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]],…):仅在包含所有数值变量的数据帧上定义。请将此错误消息添加到问题中。让你的问题更清楚