【发布时间】:2014-03-13 19:13:06
【问题描述】:
总体情况:
我的测量设备的界面无法保存任何进一步的信息,但它在测量其值时生成的 csv 的名称。因此,我使用了一组系统的缩写来解释不断变化的参数,例如浓度、酶、原料、缓冲液等,这结合形成了我的 csv 文件的标题,它形成了我现在所在的 data.frames 的名称试图读出名称,将它们与其余数据结合起来,形成我可以用来进行回归的表格。
问题:
我刚刚注意到我在列表中丢失了data.frames 的名称,
我可以在每次调用 lapply 后重命名它们,但这似乎不是一个合适的解决方案。
我找到了使用 llply 的建议,但我也无法教它保留名称。
# loads plyr package
library(plyr)
# generates a showcase list of dataframes,
data <- list(data.frame(c(1,2),c(3,3)),data.frame(c(1,2),c(3,3)),data.frame(c(1,2),c(3,3)),data.frame(c(1,2),c(3,3)))
# assigns names to dataframe
names(data) <- list("one","two", "tree", "four")
使用数据框名称将“o”传递给列,这部分工作正常, 但是运行之后名字就丢失了
data <- lapply(X = seq_along(data),
FUN = function(i){
x <- data[[i]]
if (gsub("([(a-z)]).*","\\1", names(data)[i]) == "o") {x$enz <- "o"}
return(x)},
USE.NAMES = TRUE)
与llply 相同,按预期运行,但也不保留名称,尽管我认为我可以解决该特定问题(引用:“llply 相当于 lapply,除了它会保留标签并可以显示进度条。”)
data <- llply(seq_along(data), function(i){
x <- data[[i]]
if (gsub("([(a-z)]).*","\\1", names(data)[i]) == "o") {x$enz <- "o"}
return(x)})
我会非常感谢提示如何解决这个问题而没有类似的东西
name(data) <- list.with.the.names
在每个 llply ore lapply 调用之后。
【问题讨论】:
-
如果“大部分信息都存储在 data.frames 名称中”,您显然拥有untidy data。您应该纠正这一点并从那里继续。
-
有趣的文章,但不幸的是,在我在实验室构建实验设置期间,我的数据结构是我最不关心的问题,所以我现在必须清理我的数据并使用我的现在得到了。请参阅编辑后的“总体情况”
-
好吧,将这些数据作为列添加到 data.frames 中(并可能借此机会对其进行解析,这样您就有了感兴趣的实际值,而不仅仅是您的代码)。没有人强迫您将其保留在名称中。