如何使用 dplyr left_join 在数据框中添加属性作为列表元素并根据需要将其导出到文本文件中?

秀夫

我有一个列表和一个数据框,如下所示:

name <- c("A","B","C","D","E")
n <- c("1, 2, 3, 4, 5, 6, 7, 8, 9, 10", "11, 12, 13, 14, 15", "16, 17, 18, 19, 20", "21, 22, 23, 24, 25", "26, 27, 28, 29, 30, 31, 32, 33, 34, 35")
type <- c("a", "b", "c", "d", "e")

list <- list(name=name, n=n)
df <- data.frame(name=name, type=type)

在哪里listdf看起来像这样:

> list
$name
[1] "A" "B" "C" "D" "E"

$n
[1] "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"      "11, 12, 13, 14, 15"     "16, 17, 18, 19, 20" "21, 22, 23, 24, 25" "26, 27, 28, 29, 30, 31, 32, 33, 34, 35"

> df
  name type
1    A    a
2    B    b
3    C    c
4    D    d
5    E    e

我想使用left_joinin合并这两个对象dplyr并将其内容存储df为一个新的列表对象,list其中如下所示:

> list
$name
[1] "A" "B" "C" "D" "E"

$n
[1] "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"      "11, 12, 13, 14, 15"     "16, 17, 18, 19, 20" "21, 22, 23, 24, 25" "26, 27, 28, 29, 30, 31, 32, 33, 34, 35"

$type
[1] "a" "b" "c" "d" "e"

有没有人知道如何合并列表和数据框并将结果添加到列表中?我厌倦了下面的脚本,但它返回了一个错误。

> list %>% left_join(.$name, df.name, by="name")
Error in UseMethod("left_join") : 
  no applicable method for 'left_join' applied to an object of class "list"

我曾经R用于更简单的数据操作,但从未将其用于此类文本操作。非常感谢您的建议。

我更喜欢在其中使用管道功能,dplyr但解决方案不限于此包。预先感谢您的友好建议。

罗纳克·沙阿

也许使用match会更容易 -

list$target <- df$type[match(list$name, df$name)]
list

#$name
#[1] "A" "B" "C" "D" "E"

#$n
#[1] "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"         
#[2] "11, 12, 13, 14, 15"                    
#[3] "16, 17, 18, 19, 20"                    
#[4] "21, 22, 23, 24, 25"                    
#[5] "26, 27, 28, 29, 30, 31, 32, 33, 34, 35"

#$target
#[1] "a" "b" "c" "d" "e"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档