如何创建以保留字repeat为列名且无后缀点的DataFrame?
解决R中data.frame列名"repeat"被自动加后缀的问题
这个问题我之前也碰到过!原因很简单——repeat是R的保留关键字(就是R已经内置、专门用来写循环语句的词),默认情况下data.frame()的check.names参数是TRUE,它会自动调整不符合语法规范的列名,给保留字后面加个点来避免冲突。
要强制保留列名"repeat"本身,只需要在创建data.frame时把check.names参数设为FALSE就行,两种写法都可以:
方法1:用双引号定义列名
df <- data.frame(col1=1:5, col2=6:10, "repeat"=11:15, check.names=FALSE)
方法2:用反引号定义列名
df <- data.frame(col1=1:5, col2=6:10, `repeat`=11:15, check.names=FALSE)
运行后再打印df,就能看到列名是原汁原味的"repeat"啦!不过要注意,之后引用这个列的时候,还是得用反引号把它包起来,比如:
# 正确引用方式 df$`repeat` df[["repeat"]]
直接写df$repeat会被R识别成保留关键字,导致报错哦~
内容的提问来源于stack exchange,提问作者Julien Massardier
相关产品推荐
相关产品推荐

