gpt4 book ai didi

r - 替换 tibble 列表中值的更简洁方法

转载 作者:行者123 更新时间:2023-12-04 12:15:19 26 4
gpt4 key购买 nike

我试图想出一种更简洁的方法(更少的输入)来替换大标题列表中的值。从网上环顾四周,使用子集而不是 $ 来替换值似乎很常见,如下所示:

mtcars["cyl"][mtcars["cyl"] == 4] <- 6
我想用更少的代码来做到这一点,因为我需要为这个小标题中的 200 多列手动执行(使用不同的替换)2-3 次。我的标题名称和列名称也很长,这很麻烦。
我试图编写自己的函数来做同样的事情,但我无法让它工作:
val_set <- function(df, column, old_value, replace) {
df[column][df[column] == old_value] <- replace
}
然后我了解了替换功能,但我只能使它与 $ 一起工作,而不是 []。当我使用 View() 检查更改时,值保持不变。这与使用 $ vs [] 有关系吗?
replace(mtcars$cyl, mtcars$cyl == 4, 6)
什么是最安全和最快的方法来做到这一点?

最佳答案

只是我们需要把它赋值回对象

val_set <- function(df, column, old_value, replace) {
df[[column]][df[[column]] == old_value] <- replace
df
}
mtcars <- val_set(mtcars, 'cyl', 4, 6)
现在,检查“mtcars”“cyl”列
mtcars$cyl
[1] 6 6 6 6 8 6 8 6 6 6 6 8 8 8 8 8 8 6 6 6 6 8 8 8 8 6 6 6 8 6 8 6

关于r - 替换 tibble 列表中值的更简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68472929/

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