导入包含以数字结尾的重复列的 excel (r xlsx)
Import excel with duplicate columns that end with a number (r xlsx)
我有一个包含 4 列的 xlsx 文件:
Thingie1
Thingie1
Thingie2
Thingie2
(我知道这很愚蠢...这是因为我正在组合来自 2 个不同数据库的数据,并且 1
和 2
表示调查 1 和调查 2 之间的差异并选择转储输出到 xlsx 文件中。
当我使用 xlsx 包将其导入 R 时,它会将列标题更改为:
Thingie1
Thingie3
Thingie2
Thingie4
显然,我的 real-world 示例要复杂得多,因此很难识别什么是什么。我想要这样的东西:
Thingie1
Thingie11
Thingie2
Thingie21
现在,我可以通过打开 excel 中的文件并更改那里的列来解决这个问题……这样我就可以解决眼前的问题,但我讨厌破坏我的工作流程……会有一些以更好的方式将此数据导入 R 本身的方法?
我认为您应该使用 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"
我有一个包含 4 列的 xlsx 文件:
Thingie1
Thingie1
Thingie2
Thingie2
(我知道这很愚蠢...这是因为我正在组合来自 2 个不同数据库的数据,并且 1
和 2
表示调查 1 和调查 2 之间的差异并选择转储输出到 xlsx 文件中。
当我使用 xlsx 包将其导入 R 时,它会将列标题更改为:
Thingie1
Thingie3
Thingie2
Thingie4
显然,我的 real-world 示例要复杂得多,因此很难识别什么是什么。我想要这样的东西:
Thingie1
Thingie11
Thingie2
Thingie21
现在,我可以通过打开 excel 中的文件并更改那里的列来解决这个问题……这样我就可以解决眼前的问题,但我讨厌破坏我的工作流程……会有一些以更好的方式将此数据导入 R 本身的方法?
我认为您应该使用 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"