data.frame без разрушения имен столбцов
Есть ли способ использовать data.frame без разрушения имен столбцов?
У меня есть следующая структура:
$`Canon PowerShot` [1] 9.997803e-01 9.997318e-01 3.327920e-01 3.327920e-01 9.988220e-01 [6] 4.030871e-05 4.928497e-05 $`Casio Exilim` [1] 5.322024e-06 9.999646e-01 5.322024e-06 5.322024e-06 9.999646e-01 [6] 5.322024e-06 9.999646e-01 $FinePix [1] 3.850036e-05 9.998887e-01 6.650074e-02 6.650074e-02 9.998465e-01 [6] 9.998465e-01 4.345598e-05 $`Kodak EasyShare` [1] 3.548812e-05 9.998604e-01 3.996137e-01 3.996137e-01 9.987841e-01 [6] 3.179604e-05 2.789861e-05 $`Nikon Coolpix series` [1] 9.156401e-02 9.998091e-01 1.995972e-01 1.995972e-01 9.996341e-01 [6] 7.033741e-05 8.499410e-05
но после использования do.call(data.frame, my_list)
, я получаю следующее:
- Лучший способ конвертировать список в вектор?
- Как назначить значения динамическим именам переменных
- Преобразование десятичного в двоичный в R?
- Как автоматически включить все двухсторонние взаимодействия в модели glm в R
- Манекены переменных из строковой переменной
Canon.PowerShot Casio.Exilim FinePix Kodak.EasyShare 1 9.997803e-01 5.322024e-06 3.850036e-05 3.548812e-05 2 9.997318e-01 9.999646e-01 9.998887e-01 9.998604e-01 3 3.327920e-01 5.322024e-06 6.650074e-02 3.996137e-01 4 3.327920e-01 5.322024e-06 6.650074e-02 3.996137e-01 5 9.988220e-01 9.999646e-01 9.998465e-01 9.987841e-01 6 4.030871e-05 5.322024e-06 9.998465e-01 3.179604e-05 7 4.928497e-05 9.999646e-01 4.345598e-05 2.789861e-05 Nikon.Coolpix.series 1 9.156401e-02 2 9.998091e-01 3 1.995972e-01 4 1.995972e-01 5 9.996341e-01 6 7.033741e-05 7 8.499410e-05
(обратите внимание, что вместо “‘в именах столбцов есть”
- Скомпилировать R-скрипт в автономный .exe-файл?
- Заменить значения NA по строкам
- cbind a df с пустым df (cbind.fill?)
- Формат чисел до значительных цифр в R
- Lapply для добавления столбцов в каждый Dataframe в списке
- Как вы конвертируете даты / время из одного часового пояса в другой в R?
- Добавить столбец «ранг» в кадр данных
- конвертировать письма в номера
Вы можете остановить R
изменив имена на синтаксически допустимые имена, установив check.names = FALSE
. Подробнее см. ?data.frame
.
# assuming your data is in a list called my_list do.call(data.frame, c(my_list, check.names = FALSE))
data.frames в R являются фактически списками. Следовательно, это также справедливо:
data.frame(my_list, check.names = FALSE)
Знание этого открывает возможности использования lapply
на data.frames, что, я думаю, довольно круто:
my_data <- data.frame(my_list, check.names = FALSE) lapply(my_data, IQR)