[英]Transform elements of list in elements of a data frame
我有这些数据:
a <- data.frame(element1 = c("JB", "AC", "DO", "MR"),
element2 = c(1, 3, 4, 2))
b <- list(JB = c("a", "b", "s"), DO = c("ER", "TR", "OP"))
我想创建一个新的数据帧ab
类似于数据帧a
,而使得第一列的元素列表B的元素。 即,在新的ab
数据帧中,具有的标题列表B的元件相同的第一列中的元素采取在列表中的元素的值b
。
编辑:输出应该与 a 相同,但 element1 元素是列表:
> ab
element1 element2
1 JB 1
2 AC 3
3 DO 4
4 MR 2
a <- data.frame(element1 = c("JB", "AC", "DO", "MR"),
element2 = c(1, 3, 4, 2))
b <- data.frame(JB = c("a", "b", "s"), DO = c("ER", "TR", "OP"))
merge(b,a)
这应该可以完成工作。 输出将是:
JB DO element1 element2
1 a ER JB 1
2 b TR JB 1
3 s OP JB 1
4 a ER AC 3
5 b TR AC 3
6 s OP AC 3
7 a ER DO 4
8 b TR DO 4
9 s OP DO 4
10 a ER MR 2
11 b TR MR 2
12 s OP MR 2
那不只是
ab <- within(a, element1 <- b[element1])
输出
> str(ab)
'data.frame': 4 obs. of 2 variables:
$ element1:List of 4
..$ JB: chr "a" "b" "s"
..$ NA: NULL
..$ DO: chr "ER" "TR" "OP"
..$ NA: NULL
$ element2: num 1 3 4 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.