将数据框中的列转换为类列表

时间:2019-05-30 01:09:47

标签: r list dataframe

我正在尝试将数据框中的列转换为列表。

数据框是这种格式

State   combo
1   0,0,0,0,0,0
2   1,0,0,0,0,0
3   0,1,0,0,0,0
4   1,1,0,0,0,0
5   0,0,1,0,0,0
6   1,0,1,0,0,0
7   0,1,1,0,0,0

我需要做的是将“ combo”列中的每一行更改为数字列表。所以我最后想要得到的是第1行等于c(0,0,0,0,0)等的东西。

到目前为止,我的代码是...

list.combo<- read.csv("data")

rownames(list.combo) <- list.char$State

char.l <- list.char%>%
  select(combo)

1 个答案:

答案 0 :(得分:0)

这是tidyverse的一种方式-

df %>% 
  separate_rows(combo, sep = ",") %>% 
  {split(as.numeric(.$combo), .$State)} %>% 
  setNames(paste0("State", seq_along(.)))

$State1
[1] 0 0 0 0 0 0

$State2
[1] 1 0 0 0 0 0

$State3
[1] 0 1 0 0 0 0

$State4
[1] 1 1 0 0 0 0

$State5
[1] 0 0 1 0 0 0

$State6
[1] 1 0 1 0 0 0

$State7
[1] 0 1 1 0 0 0

这是来自@thelatemail评论的一种更好的方法-

strsplit(as.character(df$combo), ",") %>% 
  lapply(as.numeric) %>% 
  setNames(paste0("State", seq_along(.)))

数据-

df <- read.table(text = "State   combo
1   0,0,0,0,0,0
2   1,0,0,0,0,0
3   0,1,0,0,0,0
4   1,1,0,0,0,0
5   0,0,1,0,0,0
6   1,0,1,0,0,0
7   0,1,1,0,0,0", header = T, stringsAsFactors = F)