Я пытаюсь преобразовать столбец в фрейме данных в список.
Фрейм данных в этом формате
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
Что мне нужно сделать, так это изменить каждую строку в столбце «комбо» на числовой список. Итак, что я хочу получить, это что-то, где строка 1 равна c(0,0,0,0,0)
и т. д.
мой код пока...
list.combo<- read.csv("data")
rownames(list.combo) <- list.char$State
char.l <- list.char%>%
select(combo)
в настоящее время это класс = фактор
Почти уверен, что это обман, но df$combo <- strsplit(as.character(df$combo), ",")
то, что вы ищете?
Вот один из способов с 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)
Без проблем. Посмотрите, работает ли решение thelatemail в комментариях для вас. Лучше, если это так.
это строки
combo
столбца, разделенные запятыми? Можете ли вы обновить свой пост с помощьюdput(list.combo)
?