gpt4 book ai didi

r - 使用 R 更改数据框中所有列的所有值,特定列除外

转载 作者:行者123 更新时间:2023-12-02 06:50:47 25 4
gpt4 key购买 nike

我想更改数据框中所有列的所有值,特定列除外。我该怎么做?

问题 1:我的以下代码将更改数据框中找到 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)

我也试过这样做:

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

但它们无法正常工作。

问题 2:此外,如果在 C 列中找到 13,我想将所有行中的值更改为 NA。所以,数据框看起来像:

A .   B .  C
NA NA 13
14 13 20
13 18 21

最佳答案

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

关于r - 使用 R 更改数据框中所有列的所有值,特定列除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45153484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com