R 转换数据帧元素中的列表元素

R 转换数据帧元素中的列表元素,r,R,我有这些数据: a <- data.frame(element1 = c("JB", "AC", "DO", "MR"), element2 = c(1, 3, 4, 2)) 这不是很公平吗 ab <- within(a, element1 <- b[element1]) 我写了一篇关于期望输出的评论。你认为这是可行的吗?你想让b的第1列在ab的第1列吗?我有点困

我有这些数据:

a <- data.frame(element1 = c("JB", "AC", "DO", "MR"),
                element2 = c(1, 3, 4, 2))
这不是很公平吗

ab <- within(a, element1 <- b[element1])

我写了一篇关于期望输出的评论。你认为这是可行的吗?你想让b的第1列在ab的第1列吗?我有点困惑,因为在您的编辑中,输出与输入是相同的,输出应该是相同的,只是元素应该不同:不是字符串,而是列表中的元素。我不确定这是否可行,因为我是R新手。有点像,当我单击ab[1,1]时,我得到的是一个列表,而不是a中的字符串。我不确定你的意思,但你可以尝试
合并(b[,1],a[,1])
。这里a[,1]表示所有行,a的第1列和b[,1]表示b的第1列的所有行。如果需要其他输出,则可以更改行号或列号。所需的输出与
a
相同。你能解释一下吗?@inter欢迎来到Stack Overflow!您可以查看本教程:它显示了如何在R中将列表转换为数据帧的两个示例。
> 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