gpt4 book ai didi

将数据帧多列中出现的数字替换为 R 中的另一个值

转载 作者:行者123 更新时间:2023-12-02 23:41:34 26 4
gpt4 key购买 nike

预计到达时间:顺便说一句,下面的要点是不必迭代我的整个列向量集,以防万一这是建议的解决方案(只需执行已知的操作即可)一次工作一次)。

<小时/>

有很多用其他值替换 R 中数据帧的单个向量中的值的示例。

以及如何将 NA 的所有值替换为其他值:

我正在寻找的内容与上一个问题类似,但基本上是尝试用一个值替换另一个值。对于多列满足条件的情况,或者只是尝试对多个列执行前两个问题的操作,我无法生成映射到实际数据帧的逻辑值数据帧。

一个例子:

data <- data.frame(name = rep(letters[1:3], each = 3), var1 = rep(1:9), var2 = rep(3:5, each = 3))

data
name var1 var2
1 a 1 3
2 a 2 3
3 a 3 3
4 b 4 4
5 b 5 4
6 b 6 4
7 c 7 5
8 c 8 5
9 c 9 5

假设我希望 var1var24 的所有值均为 10

我确信这是基本的,我只是没有正确思考。我一直在尝试这样的事情:

data[data[, 2:3] == 4, ]

这不起作用,但如果我对 data[, 2] 而不是 data[, 2:3] 执行相同的操作,则一切正常。似乎逻辑测试(如 is.na())适用于多行/列,但数值比较效果不佳?

感谢您的建议!

最佳答案

您想要在整个数据框中搜索与您尝试替换的值相匹配的任何值。您可以以同样的方式运行逻辑测试,例如用 10 替换所有缺失值..

data[ is.na( data ) ] <- 10

您还可以将所有 4 替换为 10。

data[ data == 4 ] <- 10

至少我认为这就是你所追求的?

假设您想忽略第一行(因为它都是字母)

# identify which columns contain the values you might want to replace
data[ , 2:3 ]

# subset it with extended bracketing..
data[ , 2:3 ][ data[ , 2:3 ] == 4 ]
# ..those were the values you're going to replace

# now overwrite 'em with tens
data[ , 2:3 ][ data[ , 2:3 ] == 4 ] <- 10

# look at the final data
data

关于将数据帧多列中出现的数字替换为 R 中的另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14737773/

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