проблемы при удалении столбцов в файле csv и хранении данных?

У меня есть файл csv, который имеет следующий формат:

                          1           3           1          4
1415670_at  1   8.512147859 8.196725061 8.174426394 8.62388149
1415671_at  2   9.119200527 9.190318548 9.149239039 9.211401637
1415672_at  3   10.03383593 9.575728316 10.06998673 9.735217522
1415673_at  4   5.925999419 5.692092375 5.689299161 7.807354922

Я сделал некоторые манипуляции с этими данными, удалив столбцы, которые не являются 1 или 2:

m<-read.csv("table.csv")
smallerdat <- m[ c(1,2, grep("^X1$|^X2$|X1\\.|X2\\." , names(m) ) ) ]

Теперь я хочу снова сохранить эти результаты в файле csv, поэтому я делаю это:

write.csv(smallerdat,"tablemodified.csv",ncolumns=length(smallerdat),sep=",")

но я получил сообщение об ошибке:

Error in cat(list(...), file, sep, fill, labels, append) : 
  argument 1 (type 'list') cannot be handled by 'cat'

Вопрос, который у меня есть, заключается в том, как я могу хранить в файле csv измененную таблицу. Любая помощь?

3
nl ja de
@richiemorrisroe: просмотрите функцию «[». Ваше предложение вернет то же значение, что и исходный код. Если вы выбираете столбцы, вам не нужна запятая.
добавлено автор 42-, источник
@Manolo, какой должен быть ncolumns = length (lessdat) , и где вы видите такой аргумент в документации для write.table или write. CSV ?
добавлено автор A5C1D2H2I1M1N2O1R2T1, источник
похоже, что есть ошибка в grep . Я думаю, что вам нужна запятая перед первыми круглыми скобками, чтобы убедиться, что R просто выбирает эти столбцы.
добавлено автор richiemorrisroe, источник
@DWin вау, я этого не знал. В будущем я сохраню запятую. Спасибо, и извиняюсь за шум.
добавлено автор richiemorrisroe, источник

2 ответы

The write.csv function needs to have the file-name given as a named argument (as do all of the write.* cousins). Try this instead (edited):

write.csv(smallerdat, file="tablemodified.csv" )

И мое первоначальное предположение относится к функции save (), а не к вариантам write.table.

3
добавлено
Затем отмените аргумент ncolumns.
добавлено автор 42-, источник
Нет, это не правда. Я сочетал функции сохранения и записи
добавлено автор 42-, источник
это правда, что имя файла должно быть именованным аргументом? Я успешно использовал write.csv несколько раз в прошлом без указания file = "somefilename" .
добавлено автор A5C1D2H2I1M1N2O1R2T1, источник
Щелчок! Просто видел ваше редактирование;)
добавлено автор A5C1D2H2I1M1N2O1R2T1, источник
@Manolo, я думаю, что это описано в вашем другой вопрос
добавлено автор A5C1D2H2I1M1N2O1R2T1, источник
@DWin спасибо за редактирование, другая проблема в том, почему он не сохраняет исходные заголовки в сохраненном файле (1,1, ...), но он хранит X, X1.1 и т. Д.
добавлено автор Layla, источник
извините меня @ DWin, может быть, это не процедура, но не могли бы вы быть добрыми, чтобы взглянуть на мой новый вопрос stackoverflow.com/questions/14072256/… , он сделал с этой проблемой. благодаря
добавлено автор Layla, источник

Я собирался сказать вам прочитать ? Read.csv и отметить раздел «См. Также», который указывает на write.csv ... но это не так.

Итак, используйте write.csv . :)

2
добавлено
@Manolo: write.csv не имеет таких же аргументов, как write . Вам нужно будет прочитать ? Write.csv , чтобы адаптировать ваш код к вашей конкретной ситуации.
добавлено автор Joshua Ulrich, источник
Я пробовал и ничего, теперь есть еще одна ошибка о sep. Я взял его и все тот же вопрос
добавлено автор Layla, источник