Я модифицировал фрейм данных в R с помощью lapply()
и заметил, что мой фрейм данных был преобразован в объект списка, когда я не использовал скобки для его присвоения.
Например, следующее возвращаетсписок
junk <- data.frame(col1 = 1:3,
col2 = c("a,b,c"),
col3 = c(T,T,F))
junk <- lapply(junk, function(x) {
if (is.numeric(x)) return(x*2)
else return(x)})
str(junk)
, где в качестве следующего возвращается фрейм данных.
junk <- data.frame(col1 = 1:3,
col2 = c("a,b,c"),
col3 = c(T,T,F))
junk[] <- lapply(junk, function(x) {
if (is.numeric(x)) return(x*2)
else return(x)})
str(junk)
Я хотел бы знать, почему []
сохраняет структуру фрейма данных и что []
делает в этом случае.Я понимаю, почему первый блок кода преобразует junk
в список, но не понимаю, почему второй блок сохраняет структуру, хотя я не мог придумать четкого заголовка для описания вопроса / ситуации.Спасибо.