将dataframe连接到列表
我有一些在Excel中的行名称与他们各自的出版物。
Name Pub AAAA MNWP AAAA TIWD BBBB CGWK BBBB MNWP CCCC EXWE CCCC EXWE CCCC HXWT CCCC MDWE CCCC MDWE CCCC MNWP CCCC MNWP CCCC NDWK DDDD MNWP EEEE EXWE EEEE TIWE
基本上我想要一个列表是这种forms:
AAAA: MNWP, TIWD BBBB: CGWK, MNWP CCCC: EXWE, HXWT, MDWE, MNWP, NDWK, TIWE DDDD: MNWP EEEE: EXWE, TIWE
有没有一种方法合并在上面的格式这个列表? Excel
或R
(最好是Excel)。
使用data.table
library(data.table) setDT(dat)[, list(Group=paste(Pub, collapse=", ")), by=Name][,paste(Name, Group, sep=": ")] #[1] "AAAA: MNWP, TIWD" #[2] "BBBB: CGWK, MNWP" #[3] "CCCC: EXWE, EXWE, HXWT, MDWE, MDWE, MNWP, MNWP, NDWK" #[4] "DDDD: MNWP" #[5] "EEEE: EXWE, TIWE"
一种方法是
x <- read.table(text = "Name Pub AAAA MNWP AAAA TIWD BBBB CGWK BBBB MNWP CCCC EXWE CCCC EXWE CCCC HXWT CCCC MDWE CCCC MDWE CCCC MNWP CCCC MNWP CCCC NDWK DDDD MNWP EEEE EXWE EEEE TIWE ", header = TRUE) aggregate(Pub ~ Name, data = x, FUN = paste) Name Pub 1 AAAA MNWP, TIWD 2 BBBB CGWK, MNWP 3 CCCC EXWE, EXWE, HXWT, MDWE, MDWE, MNWP, MNWP, NDWK 4 DDDD MNWP 5 EEEE EXWE, TIWE
R中的另一个选项:
library(dplyr) df %>% group_by(Name) %>% summarise(Pub = paste(Pub, collapse =", ")) #Source: local data frame [5 x 2] # # Name Pub #1 AAAA MNWP, TIWD #2 BBBB CGWK, MNWP #3 CCCC EXWE, EXWE, HXWT, MDWE, MDWE, MNWP, MNWP, NDWK #4 DDDD MNWP #5 EEEE EXWE, TIWE