У меня есть несколько файлов, и мне нужно дать каждому уникальный идентификационный код автоматически.Дайте каждой строке файлов список уникальных идентификаторов
До сих пор мне удалось сделать следующее:
datalist <- mapply(cbind, datalist, "temp1"=names(datalist), SIMPLIFY=F)
который помещает имя файла в новый столбец.
Но тогда я хочу добавить число, от 1: количество строк в каждом файле.
Я пробовал пару вещей, но я действительно не ожидал, что сработает: (тогда я собирался вставить их вместе и удалить столбцы temp), а затем выяснить, как это сделать в одном шаг без временных колонн):
datalist <- mapply(cbind, datalist, "temp2"=1:(sapply(datalist, nrow)), SIMPLIFY=F)
или
datalist <- mapply(cbind, datalist, "temp2"=1:nrow(datalist), SIMPLIFY=F)
я могу получить количество строк для одного бита списка (nrow(datalist[[1]])
), но я не уверен, как применить это ко всем их, независимо от того, сколько в списке.
Это петля, или есть лучший способ?
Пример набора данных:
datalist <- structure(list(test.raw.data = structure(list(officer.sw = c("bob",
NA, "brian", "brian", NA), officer.ne = c(NA, "angie", NA, NA,
NA), officer.nw = c(NA, NA, NA, NA, "lola")), .Names = c("officer.sw",
"officer.ne", "officer.nw"), class = "data.frame", row.names = c(NA,
-5L)), test2.raw.data = structure(list(officer.sw = c("bob",
"NA", "brian", "brian", "NA", "bob", "NA", "bob", "bob", "NA",
"NA"), officer.ne = c("NA", "angie", "NA", "NA", "NA", "NA",
"sandy", "NA", "NA", "NA", "NA"), officer.nw = c("NA", "NA",
"NA", "NA", "lola", "NA", "NA", "NA", "NA", "lola", "NA"), officer.EM = c("NA",
"NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "mr bendy"
), randomothercol = c("angie", "b", "c", "e", "d", "fg", "t",
"wsefg", "aweg", "lola", "g")), .Names = c("officer.sw", "officer.ne",
"officer.nw", "officer.EM", "randomothercol"), class = "data.frame", row.names = c(NA,
-11L))), .Names = c("test.raw.data", "test2.raw.data"))
Как-то, после тестирования оба этих ответов, 'имена (DataList)' 'теперь NULL' ... Я до сих пор нужны имена элементов списка для позже, и я не знаю, почему eentirely они удаляются? – Froom2
Имена вашего оригинального 'datalist' будут изменены только в том случае, если вы назначили новое значение этому объекту. Мое решение не изменяет исходный объект. Если вы хотите, вы можете легко переименовать результат моего ответа, то есть с помощью 'names (...) <- names (datalist)' – Andrie
Спасибо :) Да, я думал о том, чтобы просто переназначить их вчера вечером после того, как я вернулся домой. Спасибо за помощь! Не знаю, какие из этих ответов клевать, они оба настолько похожи! – Froom2