这是与 this one 相关的“让我们尝试另一种方式”的帖子:
是否可以定义/修改读取功能
xlsx
中的数据的事实文件是 基于行的 (即每一行代表一个变量)data.frame
(即 xlsx
中过去的一行变成一列) 关于
csv
我可能会从转向 readLines
开始的文件, 但不幸的是 xlsx
对我来说仍然是一个黑匣子。这里有一点
xlsx
包含两种数据方向示例的文件:https://github.com/rappster/stackoverflow/blob/master/excel/row-and-column-based-data.xlsx
最佳答案
稍微修改一下 read.xlsx
怎么样?来自 xlsx
的函数包裹:
library(xlsx)
read.transposed.xlsx <- function(file,sheetIndex) {
df <- read.xlsx(file, sheetIndex = sheetIndex , header = FALSE)
dft <- as.data.frame(t(df[-1]), stringsAsFactors = FALSE)
names(dft) <- df[,1]
dft <- as.data.frame(lapply(dft,type.convert))
return(dft)
}
# Let's test it
read.transposed.xlsx("row-and-column-based-data.xlsx", sheetIndex = 2)
# variable var_1 var_2 var_3
#1 2016-01-01 1 a TRUE
#2 2016-01-02 2 b FALSE
#3 2016-01-03 3 c TRUE
关于将 xlsx 文件中的水平(基于行)数据读入 R 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35234038/