将 xlsx 文件中的水平(基于行)数据读入 R 数据帧

标签 r excel dataframe xlsx transpose

这是与 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/

    相关文章:

    python - Pandas - 为 Pandas 中的每个组插入空白行

    r - 如何在R中查找由日期和时间组成的两行数据之间的差异

    r - 在 r 中生成随机图

    r - 如何计算R中的randomForest训练AUC

    r - R 中前三个值的移动平均值

    excel - Worksheet_新工作表的激活代码

    vba - 从 VBA 复制范围中排除 1 行

    python - 比较除一列之外的所有列的值

    excel - 在 Groovy 中打开现有 Excel 文件

    python - 打印行的次数与其值加一在其他行中出现的次数相同