【发布时间】:2019-07-16 09:38:10
【问题描述】:
我想使用cbind 来嵌套列表和数据框。
让我们举个例子。 nested 是嵌套列表。它有 2 个元素,每个元素有 2 个 data.frame。所以,nested 是
第一个元素 = data.frame 1 + data.frame2/ 第二个元素 = data.frame 1 + data.frame 2
given<-replicate(2,list(data.frame(unlist(replicate(10,sample(c(0.2,0.3,0.4,0.1),2,replace=FALSE),simplify=FALSE)),ncol=2)))
colnames(given[[1]])<-c('a','b')
colnames(given[[2]])<-c('a','b')
nested<-list(given, given)
我正在尝试 cbind nested data.frame 的第二列,即 b 和 target,这是一个 10*2 的 data.frame。因此,它将生成 1 个包含 4 个元素的列表,即数据框。
target<-data.frame(sample(c("a","b","c","d"),10,replace=TRUE),sample(c("a","b","c","d"),10,replace=TRUE))
colnames(target)<-c("1st","2nd")
target
我尝试了lapply 功能。
last<-lapply(seq_along(nested), function(x) function(y) cbind(target, nested[[x]][[y]][,c("b")]))
但是,它产生了错误。
[[1]]
function (y)
cbind(target, nested[[x]][[y]][,c("b")]))
<bytecode: 0x00000000e092abe0>
<environment: 0x00000000e0948390>
一定有问题,但我找不到原因。非常感谢您的帮助。
*附加信息:我写的是预期的结果。
nested如下。
[[1]]
[[1]][[1]]
a b
[1,] 0.3 0.3
[2,] 0.2 0.4
[3,] 0.1 0.2
[4,] 0.3 0.3
[5,] 0.3 0.4
[6,] 0.1 0.2
[7,] 0.3 0.4
[8,] 0.2 0.3
[9,] 0.1 0.3
[10,] 0.3 0.4
[[1]][[2]]
a b
[1,] 0.3 0.2
[2,] 0.4 0.4
[3,] 0.2 0.4
[4,] 0.4 0.1
[5,] 0.1 0.4
[6,] 0.4 0.3
[7,] 0.1 0.4
[8,] 0.4 0.2
[9,] 0.2 0.4
[10,] 0.4 0.2
[[2]]
[[2]][[1]]
a b
[1,] 0.3 0.3
[2,] 0.2 0.4
[3,] 0.1 0.2
[4,] 0.3 0.3
[5,] 0.3 0.4
[6,] 0.1 0.2
[7,] 0.3 0.4
[8,] 0.2 0.3
[9,] 0.1 0.3
[10,] 0.3 0.4
[[2]][[2]]
a b
[1,] 0.3 0.2
[2,] 0.4 0.4
[3,] 0.2 0.4
[4,] 0.4 0.1
[5,] 0.1 0.4
[6,] 0.4 0.3
[7,] 0.1 0.4
[8,] 0.4 0.2
[9,] 0.2 0.4
[10,] 0.4 0.2
而target 是..
1st 2nd
1 a b
2 a a
3 c a
4 b a
5 b b
6 c c
7 d b
8 a a
9 c a
10 d b
nested的每个data.frame有2列,分别是a和b。我的预期结果是……
[1]
1st 2nd b
1 a b 0.3
2 a a 0.4
3 c a 0.2
4 b a 0.3
5 b b 0.4
6 c c 0.2
7 d b 0.4
8 a a 0.3
9 c a 0.3
10 d b 0.4
[2]
1st 2nd b
1 a b 0.2
2 a a 0.4
3 c a 0.4
4 b a 0.1
5 b b 0.4
6 c c 0.3
7 d b 0.4
8 a a 0.2
9 c a 0.4
10 d b 0.2
[3]
1st 2nd b
1 a b 0.3
2 a a 0.4
3 c a 0.2
4 b a 0.3
5 b b 0.4
6 c c 0.2
7 d b 0.4
8 a a 0.3
9 c a 0.3
10 d b 0.4
[4]
1st 2nd b
1 a b 0.2
2 a a 0.4
3 c a 0.4
4 b a 0.1
5 b b 0.4
6 c c 0.3
7 d b 0.4
8 a a 0.2
9 c a 0.4
10 d b 0.2
【问题讨论】:
-
是否要将
target添加到每个嵌套数据框,以便将target添加4 次? -
哦,对不起。我将 'nested' 添加到 'target' 4 次。我生成了“目标”,但我错误地删除了代码。我现在在手机上,所以我不能写代码。
-
它有效,但我想在
nested中绑定第二列data.frames,即b。 -
很抱歉没有很好地提出我的问题。我写了预期的结果。
标签: r dataframe lapply nested-lists