使用R在一个单元格中显示多个值

使用R在一个单元格中显示多个值,r,R,假设有2个data.frames,例如: dat1 <- read.table("[path_dat1]", header=TRUE, sep=",") id name age 1 Jack 21 2 James 40 dat2 <- read.table("[path_dat2]", header=TRUE, sep=",") id interests 1 football 1

假设有2个data.frames,例如:

dat1 <- read.table("[path_dat1]", header=TRUE, sep=",")
    id   name  age
     1   Jack   21
     2  James   40

dat2 <- read.table("[path_dat2]", header=TRUE, sep=",")
    id      interests
     1       football
     1     basketball
     1         soccer
     2  pingpang ball

如何使用plyr以最简单的方式加入这些问题?

我无法告诉您如何在plyr中解决此问题,但可以在base中:

dat3 <- aggregate(interests~id, dat2, paste, collapse=",")
merge(dat1, dat3, "id")

dat3我无法告诉您如何在plyr中解决此问题,但可以在base中:

dat3 <- aggregate(interests~id, dat2, paste, collapse=",")
merge(dat1, dat3, "id")
dat3使用泰勒的例子:

dat1$interests <- ave(dat1$id, dat1$id, 
        FUN=function(x) paste(dat2[ dat2$id %in% x, "interests"], collapse=",") )
> dat1
  id   name age                     interests
1  1   Jack  21  football, basketball, soccer
2  2  James  40                 pingpang ball
dat1$利息dat1
身份证姓名年龄兴趣
杰克足球、篮球、足球
2詹姆斯40乒乓球
使用泰勒的例子:

dat1$interests <- ave(dat1$id, dat1$id, 
        FUN=function(x) paste(dat2[ dat2$id %in% x, "interests"], collapse=",") )
> dat1
  id   name age                     interests
1  1   Jack  21  football, basketball, soccer
2  2  James  40                 pingpang ball
dat1$利息dat1
身份证姓名年龄兴趣
杰克足球、篮球、足球
2詹姆斯40乒乓球

请提供可实际加载到R中并进行检查的简短示例。@Jack Fu欢迎使用SO。我添加了Matthew要求的一个额外的足球箱,以确保它可以处理两个以上的实例。在以后的文章中,请提供一些类似于我所做的可复制的例子。这使得提供援助更加容易。这里有一个链接讨论了什么是好的可复制示例:请包含可以实际加载到R中并进行检查的简短示例。@Jack Fu欢迎使用此链接。我添加了Matthew要求的一个额外的足球箱,以确保它可以处理两个以上的实例。在以后的文章中,请提供一些类似于我所做的可复制的例子。这使得提供援助更加容易。这里有一个链接讨论了什么是好的可复制示例:谢谢。你的回答也简洁而鼓舞人心。谢谢。你的回答也简洁而鼓舞人心。