У меня есть набор данных, который имеет 2200 строк. Я должен удалить большое количество столбцов (например, около 400) за раз. Эти операции происходят довольно часто, и удаляемые столбцы меняются в каждый момент времени. Столбцы, которые нужно удалить, будут находиться в текстовом файле.R: Как динамически удалить столбцы из DataFrame
Вот как я подошел к решению этого вопроса.
#Reading data
myData = read.csv("myDataFile.csv")
#Getting the column names which should be deleted
colToDelete = read.table("columnsToBeRemoved.txt")
#processing the names list
tempList = as.character(unlist(colToDelete))
cat(paste(shQuote(tempList, type="cmd"), collapse=","))
newDataSet = subset(myData, select = - ??)
Я использую cat(paste(shQuote(tempList, type="cmd"), collapse=","))
, чтобы получить список имен, разделенных запятыми. Выход этого
"04_ic_1306", "06_iEC042_1314", "13_iEcDH1_1363", "18_iEcHS_1320", "26_iEcolC_1368", "31_iEcSMS35_1347", "33_iECs_1301", "34_iECUMN_1333", "36_iEKO11_1354", "39_iJO1366", "47_iZ_1308", "54_iSFxv_1172"
Я пробовал подмножество и методы data.table, но мне не повезло с использованием любого из методов. Я получаю ошибку ниже. Я не могу указать строку на , выбрав команду.
Ошибка -a: неверный аргумент для унарного
я был в основном со ссылкой на эту previous stackoverflow question.
Поскольку вы не дали воспроизводимого примера, который я должен угадать, но 'subset (d, select = setdiff (names (d), tempList)' может работать. Для воспроизводимого примера см. http://stackoverflow.com/questions/5963269/как в изготовлении, а пра-р-воспроизводимый-пример/5963610 # 5963610 – kasterma
Эй, Кастерма, извините за предыдущий комментарий. Ваши методы работают отлично. Спасибо за ответ. – SriniShine