Kon*_*rad 2 string syntax r names dataframe
我正在使用类似于以下摘录的数据框:
df <- data.frame(A=c("Some messy string to be used",222,0),
B=c("Very important ? indicator from 2001", 888, 44),
C=c("001 This variable / makes no sense", 888, 44),
D=c("Geography", 1, 2))
Run Code Online (Sandbox Code Playgroud)
我想使用第一行中的值作为列名,我使用下面的代码:
names(df) <- make.names(df[1,])
Run Code Online (Sandbox Code Playgroud)
不幸的是,语法以Xn格式生成名称,如下图所示:
> names(df)
[1] "X3" "X3" "X1" "X3"
Run Code Online (Sandbox Code Playgroud)
我知道使用的字符串很混乱,make.names无法进行有意义的转换。如何强制 R 以更有效的方式使用那些凌乱的字符串?根据经验,我想:
您根本不需要使用make.names- 您可以直接分配字符串。这在 R 中非常有效。当您尝试将名称用作 R 名称时(例如在$运算符之后),您只需要反引号:
names(df) = unlist(df[1,])
df$`Some messy string to be used`
Run Code Online (Sandbox Code Playgroud)