Список строк из столбца выбора - PullRequest
0 голосов
/ 08 октября 2019

Здравствуйте. Я бы хотел выбрать строки в виде списка в кадре данных. Вот мой фрейм данных:

df2 <- data.frame("user_id" = 1:2, "username" = c(215,154), "password" = c("John4","Dora4"))

теперь с этим фреймом данных я могу выбрать только 1 столбец для просмотра строк в виде списка, что я и сделал с этим кодом

df2[["user_id"]]

вывод равен

[1] 1 2

но теперь, когда я пытаюсь сделать это с большим количеством столбцов, мне говорят, что он выходит за границы, в чем здесь проблема

df2[["user_id", "username"]]

Как я могу разрешить и получить результаты строк каксписок

Ответы [ 3 ]

0 голосов
/ 08 октября 2019

Формат df2 ['строки', 'столбцы'], поэтому вы должны использовать:

df2[,c("user_id", "username")]

Чтобы получить их "в виде списка", выполните:

as.list(df2[,c("user_id", "username")])

Понятие двойной скобки [[ используется для выбора одного безымянного элемента (в данном случае один безымянный столбец, поскольку кадры данных по сути являются списками данных столбца).

См. Этот ответ для более подробной информации о двойных и одинарных скобках: https://stackoverflow.com/a/1169495/8444966

0 голосов
/ 08 октября 2019

Это должно дать вам строку списка (где-то здесь должен быть ответ).

row_list<- as.list(as.data.frame(t(df2[c("user_id", "username")])))

#$V1
#[1]   1 215

#$V2
#[1]   2 154

Если вы хотите сохранить имена строк.

df2_subset <- df2[c("user_id", "username")]
setNames(split(df2_subset, seq(nrow(df2_subset))), rownames(df2_subset))
#$`1`
#  user_id username
#1       1      215

#$`2`
#  user_id username
#2       2      154
0 голосов
/ 08 октября 2019

Если я правильно понял ваш вопрос, вам необходимо ознакомиться с подмножеством в R. Это способы выбора нескольких столбцов в R:

df2[,c('user_id', 'username')]

или

df2[,1:2]

Есливы хотите вернуть все столбцы в виде списка, вы можете использовать что-то вроде этого:

lapply(1:ncol(df2), function(x) df2[,x])
...