【问题标题】:R importing excel sheet, cell a1 becomes row value in new columnR导入excel表,单元格a1成为新列中的行值
【发布时间】:2021-08-19 19:46:55
【问题描述】:

我正在将多个 Excel 工作表导入 r。每张工作表在行标题上方的单元格 a1 中都有不同的标题。在 r 中,我想剪切这个,提升标题,然后使用剪切标题作为新 id 列中的行值。例如。我想把下面的a表变成b表。

table a

| football |                |
| rank     | team           |
| -------- | -------------- |
| 1        | A              |
| 2        | B              |

table b

| rank     | team           |id         |
| -------- | -------------- |-----------
| 1        | A              |football   |
| 2        | B              |football   |


您能否建议我可以在每个工作表的函数中应用此操作的代码?

【问题讨论】:

    标签: r excel tidyverse


    【解决方案1】:

    我们可以使用来自janitorrow_to_names

    library(openxlsx) %>%
    library(dplyr)
    library(janitor)
    df1 <- read.xlsx("table_a.xlsx") 
    df1 %>%
       row_to_names(1) %>%
       mutate(id = colnames(df1)[1])
    

    【讨论】:

    • row_to_names 应该是tidyr 的一部分。
    【解决方案2】:

    你可以使用

    library(openxlsx)
    library(dplyr)
    
    df <- read.xlsx("table_a.xlsx")
    
    df %>%
      `colnames<-`(., .[1,]) %>% 
      slice(-1) %>% 
      mutate(id = colnames(df)[1])
    

    返回

      rank team       id
    1    1    A football
    2    2    B football
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多