gpt4 book ai didi

r - 使用 cbind 将向量与向量列表绑定(bind)

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

我有一个原始的data.frame,我想在某些列上运行lapply,然后使用以下结果cbind剩余的列lapply 操作。

请参阅下面的代码。理想情况下,我希望 b 包含 data.frame 中的第一个 id 列以及来自 lapply 的结果。我假设我的错误是 cbindlist 参数包含列表的 list...list< 的第一个参数 是一个可以处理的向量,但第二个参数是一个实际的 list 本身。只是想知道如何处理这个问题。

谢谢!

df <- data.frame(id = 1:10,
colB = 11:20,
colC = 21:30)

a <- lapply(df[,2:3],
function(x) {x = 10 * x}
)

b <- do.call(cbind,
list(df[,1],
a))

reprex package于2019年2月16日创建(v0.2.0)。

最佳答案

区别很微妙但很重要:为了让您的代码按照您想要的方式工作,您需要

b <- do.call(cbind, list(df[1], a))
# ^^^^^

结果

b
# id colB colC
#1 1 110 210
#2 2 120 220
#3 3 130 230
#4 4 140 240
#5 5 150 250
#6 6 160 260
#7 7 170 270
#8 8 180 280
#9 9 190 290
#10 10 200 300

区别在于,df[1] 返回一个 data.frame,而 df[,1] 返回一个向量。 cbind 有一个 data.frame 的方法,这是在上面的情况下调用的 get 方法,但在您的情况下则不然。

关于r - 使用 cbind 将向量与向量列表绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54727722/

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