Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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更改dataframe中除特定列之外的所有列的所有值_R_Dataframe_Subset - Fatal编程技术网

使用R更改dataframe中除特定列之外的所有列的所有值

使用R更改dataframe中除特定列之外的所有列的所有值,r,dataframe,subset,R,Dataframe,Subset,我想更改dataframe中除特定列之外的所有列的所有值。我该怎么做 问题1:我下面的代码将更改dataframe中找到13的所有值。但我不想在C列中更改 df <- data.frame(list(A=c(12,14,13), B=c(16,13,18)),c=c(13,20,21)) df[df == 13]<-NA print(df) 您需要定义要应用条件的data.frame的子集,以及在该条件内定义该子集 另外,1:ncol(df)-1从所有序列中减去1,因此(在本例中)

我想更改dataframe中除特定列之外的所有列的所有值。我该怎么做

问题1:我下面的代码将更改dataframe中找到13的所有值。但我不想在C列中更改

df <- data.frame(list(A=c(12,14,13), B=c(16,13,18)),c=c(13,20,21))
df[df == 13]<-NA
print(df)

您需要定义要应用条件的data.frame的子集,以及在该条件内定义该子集

另外,
1:ncol(df)-1
从所有序列中减去1,因此(在本例中)得到
0
1
,而不是
1
2

df[,1:(ncol(df)-1)][df[,1:(ncol(df)-1)]==13]  <-NA

#    A  B  c 
# 1 12 16 13 
# 2 14 NA 20 
# 3 NA 18 21

您可以用NA替换每列中的所有13s,C除外,用dplyr

library(dplyr)
df %>% mutate_at(vars(-one_of("c")), recode, `13`=NA_real_)
notc <- setdiff(names(df), "c")
df[df$c==13,notc]<-df[df$c==13,notc] %>% mutate_all(function(x) NA)
您可以将C==13的行的所有值设置为NA

df[df$c==13,setdiff(names(df), "c")]<-NA

你一次只能问一个问题。你能解释一下[指数[,2]]!=“c”,]?
indices = which(df == "13", arr.ind = TRUE)
replace(df, indices[names(df)[indices[,2]]!= "c",], NA)
#   A  B  c
#1 12 16 13
#2 14 NA 20
#3 NA 18 21

replace(df, cbind(which(df$c == "13"), (1:NCOL(df))[-which(names(df) == "c")]), NA)
#   A  B  c
#1 NA NA 13
#2 14 13 20
#3 13 18 21
library(dplyr)
df %>% mutate_at(vars(-one_of("c")), recode, `13`=NA_real_)
df[df$c==13,setdiff(names(df), "c")]<-NA
notc <- setdiff(names(df), "c")
df[df$c==13,notc]<-df[df$c==13,notc] %>% mutate_all(function(x) NA)