合并列表的dataframes并获取dataframes的名称作为列
我将列表中的所有数据帧合并到一个数据帧中 列表中的数据帧称为合并列表的dataframes并获取dataframes的名称作为列,r,list,rbind,R,List,Rbind,我将列表中的所有数据帧合并到一个数据帧中 列表中的数据帧称为 TAI NAM HEE 每个数据帧都是这样的 Yr-M Compound1 Compound 2 2015-01 0.002 0.15 2015-02 0.004 0.02 2015-03 0.01 0.09 当我将所有数据帧与meanall合并时,您可以在通过do.call将三个列表合并后,使用列表名添加一个附加列: nameColumn <- data.frame(listName
TAI
NAM
HEE
每个数据帧都是这样的
Yr-M Compound1 Compound 2
2015-01 0.002 0.15
2015-02 0.004 0.02
2015-03 0.01 0.09
当我将所有数据帧与
meanall合并时,您可以在通过do.call将三个列表合并后,使用列表名添加一个附加列:
nameColumn <- data.frame(listName = c(rep(c('TAI','NAM','HEE'),
c(length(TAI),length(NAM),length(HEE) ))
meanall <- cbind(meanall, nameColumn)
通过do.call
,在合并三个列表后,您可以使用列表名添加其他列:
nameColumn <- data.frame(listName = c(rep(c('TAI','NAM','HEE'),
c(length(TAI),length(NAM),length(HEE) ))
meanall <- cbind(meanall, nameColumn)
行名称不能重复。因此,最好的方法是将行名转换为列,然后使用gsub删除[0-9],即
df <- do.call(rbind, your_list)
df$list_id <- gsub('\\..*', '', rownames(df))
行名称不能重复。因此,最好的方法是将行名转换为列,然后使用gsub删除[0-9],即
df <- do.call(rbind, your_list)
df$list_id <- gsub('\\..*', '', rownames(df))
有一段时间我试图理解的意思
在do.call
里面做了什么,但我猜你把你的列表命名为的意思
。。。?你可以看出为什么这是一个坏习惯。至于行名,您不能有重复的行名。因此,最好的方法是将行名转换为列,然后使用gsub
删除[0-9]
我使用了不同的名称,但只是在这里更改了它以避免误解。有一段时间,我试图理解的意思在do.call中的作用,但是我猜你把你的名单命名为意思。。。?你可以看出为什么这是一个坏习惯。至于行名,您不能有重复的行名。因此,最好的做法是将行名转换为列,然后使用gsub
删除[0-9]
我使用了不同的名称,但只是在这里更改了它以避免误解
df <- do.call(rbind, your_list)
df$list_id <- gsub('\\..*', '', rownames(df))
dplyr::bind_rows(your_list, .id = 'list_id')
data.table::rbindlist(your_list, idcol = 'list_id')