gpt4 book ai didi

r - 有效地转换数据框的多列

转载 作者:行者123 更新时间:2023-12-02 10:35:15 24 4
gpt4 key购买 nike

我有一个数据框,我想将所有列(例如,获取日志或其他内容)转换为与某个名称匹配的列。因此,在下面的示例中,我想要取 X.1 和 X.2 的对数,而不是 Y 或 Z.1。

df <- data.frame(
Y = sample(0:1, 10, replace = TRUE),
X.1 = sample(1:10),
X.2 = sample(1:10),
Z.1 = sample(151:160)
)

# option 1, won't work for dozens of fields
df$X.1 <- log(df$X.1)
df$X.2 <- log(df$X.2)

当数据帧达到几千兆字节时,是否有一个好的、有效的方法来做到这一点?

最佳答案

对于将返回 data.frame 的函数:

cols <- c("X.1","X.2")
df[cols] <- log(df[cols])

否则,您将需要使用 lapply 或对列进行循环。这些解决方案将比上面的解决方案慢,因此仅在必要时才使用它们。

df[cols] <- lapply(df[cols], function(x) c(NA,diff(x)))
for(col in cols) {
df[col] <- c(NA,diff(df[col]))
}

关于r - 有效地转换数据框的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17453440/

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