【发布时间】:2021-06-29 05:10:13
【问题描述】:
我需要在 R 中读取一些反复无常的 xlsx 文件。将它们转换为 csv 会弄乱列名,因此我不得不使用替代方法。我可以使用库 readxl 和函数 read_xlsx() 读取我的文件。
我的想法是循环读取每个文件以验证它们并将它们放入列表中。然后循环列表的每个元素并为每个文件执行工作。
但是,read_xlsx() 输出是一个小标题。我对他们一无所知,但他们似乎不喜欢被放入列表或从列表中提取。
例如,我使用这样的excel文件
| this | is | a | test |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
使用这样的代码:
filenames <- list.files(path = "../Data")
dataList <- list()
for (filename in filenames) {
filepath <- paste0("../Data/", filename)
data <- read_xlsx(filepath)
print(data)
dataList[filename] <- data
print(dataList)
}
输出将是
# A tibble: 2 x 4
this is a test
<dbl> <dbl> <dbl> <dbl>
1 1 2 3 4
2 5 6 7 8
[[1]]
[1] 1 5
为什么我丢失了这么多数据?有什么方法可以创建一个 tibbles 列表以便以后操作列表中的每个元素?
【问题讨论】: