gpt4 book ai didi

r - 如何从数据框中的列名中删除 '.'?

转载 作者:行者123 更新时间:2023-12-04 04:51:32 25 4
gpt4 key购买 nike

我从 csv 文件中读取的数据框具有这样的列名
abc.def, ewf.asd.fkl, qqit.vsf.addw.coil
我想删除“。”从所有名称并将它们转换为
abcdef, eqfasdfkl, qqitvsfaddwcoil.
我尝试使用子命令 sub(".","",colnames(dataframe))但是这个命令取出了每个列名的第一个字母,列名改为
bc.def, wf.asd.fkl, qit.vsf.addw.coil
任何人都知道另一个命令来执行此操作。我可以一一更改列名,但是我有很多文件,每个文件中有 30 列或更多列。

再次,我想删除“。”来自所有的colname。我正在尝试这样做,所以我可以使用“sqldf”命令,这些命令不能很好地处理“。”

感谢您的帮助

最佳答案

1) 如果引用名称,sqldf 可以处理包含点的名称:

library(sqldf)
d0 <- read.csv(text = "A.B,C.D\n1,2")
sqldf('select "A.B", "C.D" from d0')

给予:
  A.B C.D
1 1 2

2) 使用 read.table 读取数据时或 read.csv使用 check.names=FALSE争论。

相比:
Lines <- "A B,C D
1,2
3,4"
read.csv(text = Lines)
## A.B C.D
## 1 1 2
## 2 3 4
read.csv(text = Lines, check.names = FALSE)
## A B C D
## 1 1 2
## 2 3 4

然而,在这个例子中,它仍然留下一个必须在 sqldf 中引用的名称,因为这些名称已经嵌入了空格。

3) 简单地删除句点,如果 DF是一个数据框:
names(DF) <- gsub(".", "", names(DF), fixed = TRUE)

或者将句点转换为下划线可能会更好,以便它是可逆的:
names(DF) <- gsub(".", "_", names(DF), fixed = TRUE)

最后一行也可以这样完成:
names(DF) <- chartr(".", "_", names(DF))

关于r - 如何从数据框中的列名中删除 '.'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29881072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com