【问题标题】:Import excel with duplicate columns that end with a number (r xlsx)导入带有以数字结尾的重复列的 excel (r xlsx)
【发布时间】:2016-08-02 15:14:22
【问题描述】:

我有一个包含 4 列的 xlsx 文件:

Thingie1
Thingie1
Thingie2
Thingie2

(我知道这很愚蠢......这是因为我正在组合来自 2 个不同数据库的数据,12 表示调查 1 和调查 2 之间的差异,并选择转储到 xlsx 文件中。

当我使用 xlsx 包将其导入 R 时,它会将列标题更改为:

Thingie1
Thingie3
Thingie2
Thingie4

显然,我的真实示例要复杂得多,因此很难确定什么是什么。我想要类似的东西:

Thingie1
Thingie11
Thingie2
Thingie21

现在,我可以通过在 excel 中打开文件并更改其中的列来解决这个问题...这样我就可以解决我眼前的问题,但我讨厌破坏我的工作流程...有什么方法可以将这些数据导入进入 R 本身的更好方法?

【问题讨论】:

  • 看来 read.xlsx() 在调用 data.frame() 之前正在更改列名,因为 data.frame() 会将它们更改为“Thingie1”、“Thingie1.1”,这很漂亮接近你想要的。如果所有文件的列名都相同,只需创建一个包含您想要的名称的向量: cols

标签: r excel r-xlsx


【解决方案1】:

我认为您应该使用header=FALSE 单独阅读文件的第一行(包含列名),以便正确命名列。然后在其上使用make.unique 函数。稍后使用header=TRUE 读取整个文件并使用colnames 函数设置列名。

x <- c("Thingie1", "Thingie1", "Thingie2", "Thingie2")
x
#[1] "Thingie1" "Thingie1" "Thingie2" "Thingie2"
make.unique(x)
#[1] "Thingie1"   "Thingie1.1" "Thingie2"   "Thingie2.1"

【讨论】:

    猜你喜欢
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多