При попытке преобразовать фрейм данных в список, напоминающий вложенный словарь, я попытался с помощью следующей команды:
df = data.frame(col1 = c('a', 'b'), col2 = c(1, 2))
df[,1] = as.character(df[,1])
ls1 = apply(df, 1, as.list)
print(ls1)
Однако теперь значения col2 в ls1, похоже, преобразуются в символ:
class(ls1[[2]]$col2)
# [1] "character"
Этот обходной путь работает, но мне любопытно, если кто-нибудь знает, почему результат не такой, как в предыдущем коде?
ls2 = as.list(df[1,])
for(i in 2:nrow(df)){
ls2 = list(ls2, as.list(df[i,]))
}
print(ls2)
class(ls1[[2]]$col2)
# [1] "numeric"