如何使用R [list]将列表的名称插入到列中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用R [list]将列表的名称插入到列中相关的知识,希望对你有一定的参考价值。
我有这样的数据:
# Data
varx1 <- data.frame(datex = c("2018/01/01","2018/01/02","2018/01/03"), x = c(101,102,103))
varx2 <- data.frame(datex = c("2018/01/01","2018/01/02","2018/01/03","2018/01/04","2018/01/05"), x = c(10,11,12,13,14))
varx3 <- data.frame(datex = c("2018/01/01"), x = c(1000))
combination <- list(`code status OK01` = varx1, `code trx OCS02` = varx2, `Revenue 101` = varx3)
combination
我想得到这样的结果:
# Result
result <- data.frame(datex = c("2018/01/01","2018/01/02","2018/01/03","2018/01/01","2018/01/02","2018/01/03","2018/01/04","2018/01/05","2018/01/01"),
combination = c("code status OK01","code status OK01","code status OK01","code trx OCS02","code trx OCS02","code trx OCS02","code trx OCS02","code trx OCS02","Revenue 101"),
x = c(101,102,103,10,11,12,13,14,1000))
result
需要帮助解决这个问题。谢谢
答案
我不知道变量varx3
,但这将起作用:
library(tidyverse)
result <- varx1 %>%
mutate(combination="code status OK01") %>%
bind_rows(varx2 %>%
mutate(combination="code trx OCS02")) %>%
bind_rows(varx3 %>%
mutate(combination="Revenue 101")) %>%
select(datex, combination, x)
result
如果你想在你的列表中工作(鉴于列表是静态的):
library(tidyverse)
result <- combination[[1]] %>%
mutate(combination="code status OK01") %>%
bind_rows(combination[[2]] %>%
mutate(combination="code trx OCS02")) %>%
bind_rows(combination[[3]] %>%
mutate(combination="Revenue 101")) %>%
select(datex, combination, x)
result
你指出,你有100多个变量。因此,如果combination
数据帧包含100个变量,每个变量位于一个大型列表中的单个数据帧中,则可以使用:
library(tidyverse)
var_names <- names(combination)
df <- NULL
for (i in 1:length(var_names)) {
df[[i]] <- combination[[i]] %>%
mutate(combinate=var_names[[i]])
}
result <- bind_rows(df)
result
以上是关于如何使用R [list]将列表的名称插入到列中的主要内容,如果未能解决你的问题,请参考以下文章
js中如何取得jsp中的List;例如下边jsp中代码,代码简单写的,只要具体的解决方法,最好有代码实例
如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?