read.table:headers 中的百分号 (%) 和正斜杠 (/) 替换为点 (.)

read.table: percent sign (%) and forward slah (/) in headers replaced by dot (.)

我有一个包含 header 的 csv 文件,其中一些包含百分号或正斜杠,例如:

"Exp1_BSL_%LF"、"Exp1_BSL_LF/HF"。

导入带有 read.table(header = TRUE) 的文件时,这些符号将被点替换:

"Exp1_BSL_.LF", "Exp1_BSL_LF.HF".

我没有在 R 中使用字符串的经验,所以我不知道是什么导致了这种行为。

> read.table(text = "Subject,Exp1_BSL_SDNN,Exp1_BSL_LF/HF,Exp1_BSL_%LF
+ s1,123,123,123
+ s2,123,123,123", sep=",", header=TRUE)

Subject Exp1_BSL_SDNN Exp1_BSL_LF.HF Exp1_BSL_.LF
1      s1           123            123          123
2      s2           123            123          123
默认情况下,

R 尝试使用 check.names(默认情况下为 TRUE)确保您导入的数据框具有语法上有效的名称。它不允许列名带有 %/(或 make.names 中定义的其他符号)等符号。

但是,我们可以使用 check.names = FALSE

覆盖此行为
read.table(text = "Subject,Exp1_BSL_SDNN,Exp1_BSL_LF/HF,Exp1_BSL_%LF
   s1,123,123,123
   s2,123,123,123", sep=",", header=TRUE, check.names = FALSE)

#  Subject Exp1_BSL_SDNN Exp1_BSL_LF/HF Exp1_BSL_%LF
#1      s1           123            123          123
#2      s2           123            123          123