我有许多文件,我需要自动给每个文件一个唯一的 ID 代码。
到目前为止,我已经设法做到以下几点:
datalist <- mapply(cbind, datalist, "temp1"=names(datalist), SIMPLIFY=F)
它将文件的名称放入一个新列中。
但后来我想添加一个数字,从 1:每个文件中的行数。
我已经尝试了几件事,但我并没有真正期望任何一个都能工作:(然后我打算将它们粘贴在一起并删除“临时”列 - 然后弄清楚如何在没有临时列的情况下一步完成):
datalist <- mapply(cbind, datalist, "temp2"=1:(sapply(datalist, nrow)), SIMPLIFY=F)
或者
datalist <- mapply(cbind, datalist, "temp2"=1:nrow(datalist), SIMPLIFY=F)
我可以获得列表中单个位的行数 ( nrow(datalist[[1]])
),但不确定如何将其应用于所有行,无论列表中有多少。
它是一个 for 循环,还是有更好的方法?
示例数据集:
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"))