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
我有一个包含 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