簡體   English   中英

轉換數據框元素中的列表元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM