У меня есть 2142 строки и 9 столбцов в моем фрейме данных. Когда я вызываю head(df), фрейм данных выглядит нормально, как показано ниже:
Local Identifier Local System Parent ID Storage Type Capacity Movable? Storage Unit Order Number
2209 NEZ0037-76 FreezerWorks NEZ0037 BoxPos 1 N 76
2210 NEZ0037-77 FreezerWorks NEZ0037 BoxPos 1 N 77
2211 NEZ0037-78 FreezerWorks NEZ0037 BoxPos 1 N 78
2212 NEZ0037-79 FreezerWorks NEZ0037 BoxPos 1 N 79
2213 NEZ0037-80 FreezerWorks NEZ0037 BoxPos 1 N 80
2214 NEZ0037-81 FreezerWorks NEZ0037 BoxPos 1 N 81
Description Storage.Label
2209 I4
2210 I5
2211 I6
2212 I7
2213 I8
2214 I9`
Однако, когда я вызываю write.csv
или write.table
, я получаю бессвязный вывод. Что-то вроде ниже:
Local Identifier Local System Parent ID Storage Type Capacity Movable
1 NEZ0011 FreezerWorks NEZ0011 Box-9X9 81 Y
39 40 41 42 43 44 45
80 81 "Box-9X9 NEZ0014" 1 2 3 4
38 39 40 41 42 43 44
79 80 81 "Box-9X9 NEZ0017" 1 2 3
37 38 39 40 41 42 43
78 79 80 81 "Box-9X9 NEZ0020" 1 2
36 37 38 39 40 41 42
77 78 79 80 81 "Box-9X9 NEZ0023" 1
35 36 37 38 39 40 41
76 77 78 79 80 81 "Box-9X9 NEZ0026"`
Вызов sapply(df, class)
показывает, что все столбцы во фрейме данных имеют [1] "factor"
, кроме $Storage.Level, который равен [1] "data.table" "data.frame"
. Когда я вызвал unlist
для $Storage.Level, вывод стал лучше, но изменил значение в столбце. Я также пробовал df <- data.frame(df, stringsAsFactors=FALSE)
безуспешно. Также data.frame(lapply(df, factor))
как предложено в здесь и as.data.frame
в потоке здесь не Работа. Есть ли способ удалить $Storage.Level из списка, не изменяя значения в столбце? Или, может быть, есть способ перейти с уровня "data.table" "data.frame"
на фактор и безопасно вывести данные.
R версия 3.0.3 (2014-03-06)
"data.table" "data.frame"
, которую вы называетеStorage.Level
, но на выходе она отображается какStorage.Label
). Это вполне может быть причиной. Можете ли вы попробовать временно удалить эту переменную, а затем сохранить остальные данные? - person konvas   schedule 03.07.2014