Как преобразовать список, указанный во фрейме данных, в коэффициент / числа в фрейме R данных? - PullRequest
0 голосов
/ 02 марта 2019

mydf для воспроизводимых целей.У меня есть фрейм данных mydf, и я хочу преобразовать список как факторы в mydf, но он выдает ошибку

mydf<-data.frame(col1=c("a","b"),col2=c("f","j"))
mydf$col1<-as.list(mydf$col1)
mydf$col2<-as.list(mydf$col2)
str(mydf)

Это ошибка, которую я получаю, когда пытаюсь изменить списки на факторы / числовой тип

mydf$col1<-as.factor(mydf$col1)

Error in order(y) : unimplemented type 'list' in 'orderVector1'

Я хочу, чтобы мой фрейм данных (mydf) был ожидаемым_df (без фрейма данных списков)

expected_df<-data.frame(col1=c("a","b"),col2=c("f","j"))
str(expected_df)

Если вы сравнили str (mydf) и str (Ожидаемый_df), есть разницатак как я не могу изменить списки на факторы в фрейме данных mydf.Есть ли способ решить мою проблему?

str(mydf)
'data.frame':   2 obs. of  2 variables:
$ col1:List of 2
..$ : Factor w/ 2 levels "a","b": 1
..$ : Factor w/ 2 levels "a","b": 2
$ col2:List of 2
..$ : Factor w/ 2 levels "f","j": 1
..$ : Factor w/ 2 levels "f","j": 2



str(expected_df)
'data.frame':   2 obs. of  2 variables:
$ col1: Factor w/ 2 levels "a","b": 1 2
$ col2: Factor w/ 2 levels "f","j": 1 2

1 Ответ

0 голосов
/ 02 марта 2019

Вы можете использовать stringsAsFactors = TRUE

> mydf <- data.frame(col1 = c("a", "b"), col2 = c("f", "j"), stringsAsFactors = TRUE)
> mydf
  col1 col2
1    a    f
2    b    j
> mydf$col1
[1] a b
Levels: a b
> str(mydf)
'data.frame':   2 obs. of  2 variables:
$ col1: Factor w/ 2 levels "a","b": 1 2
$ col2: Factor w/ 2 levels "f","j": 1 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...