【发布时间】:2020-11-13 05:27:08
【问题描述】:
我有一个很长的导入数据框列表,我使用以下方法导入:
temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.delim)
我生成的数据面板如下所示: All dataframes use same naming convention and data structure
如何创建一个 for 循环,将列名应用于所有这些,然后使用 tidyr uncount? 对于单个数据框,我会使用:
names(df) <- c("EVI", "Frequency", "Transition")
df_Tidy <- tidyr::uncount(df, Frequency)
如何将前面的代码块应用于我的全局环境中的所有数据框?
【问题讨论】:
-
你所有的data.frames是否仍然存储在
myfiles中?如果他们不是,他们应该是。那么它就像map-ing 或lapply-ing 在您的列表中一样简单 -lapply(myfiles, function(x) tidyr::uncount(x, Frequency) )或类似的东西。 -
@thelatemail,我在提交过程中犯了一个错误。我已经编辑了我的帖子。
-
我会重新使用
myfiles列表。与尝试使用assignget和命名约定等相比,它会使处理许多数据集(如您想要做很多事情)更容易。 -
@thelatemail,我会这样做的。问题是我完全是初学者,我不熟悉这种格式。完成此操作后,当我运行 Ronak 的代码时,我得到: Names(x)
-
您的
myfiles中的某些内容看起来不是具有 3 列的 data.frame。lengths(myfiles)是否为每个列表项返回 3?