我正在尝试运行cor函数来进行PCA分析。我明确的数据框有列名,我试图忽略相关性。我收到一条错误消息,指出找不到该对象。
Error in `[.data.frame`(ABCD, , -xyz) : object 'xyz' not found
在上面的示例中,'xyz'是列名。我应该做些什么?
我正在尝试从“HSAUR”包中提供的数据集中学习,称为七项全能。
> head(heptathlon)
hurdles highjump shot run200m longjump javelin run800m score
Joyner-Kersee (USA) 12.69 1.86 15.80 22.56 7.27 45.66 128.51 7291
列“得分”是第八列,我在运行时收到错误:
> round(cor(heptathlon[,-score]), 2)
Error in `[.data.frame`(heptathlon, , -score) : object 'score' not found
如果我用列号替换列名,它似乎有效。显然,我不能将这种方法用于大型数据集。
答案 0 :(得分:0)
您不能使用-
符号按名称删除列,就像使用数字索引一样。
但是您可以使用逻辑索引轻松地按名称删除列。这是一个示例,从Sepal.Width
iris
head(iris, 2)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
i <- iris[,names(iris) != 'Sepal.Width']
head(i, 2)
Sepal.Length Petal.Length Petal.Width Species
1 5.1 1.4 0.2 setosa
2 4.9 1.4 0.2 setosa
请注意,未使用-
,并且引用了列名称。