我正在使用该函数prcomp来计算前两个主要组件.但是,我的数据有一些NA值,因此函数会抛出错误.即使在帮助文件中提到,定义的na.action似乎也不起作用?prcomp
这是我的例子:
d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10))
prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
d$V1[5] <- NA
d$V2[7] <- NA
prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
Run Code Online (Sandbox Code Playgroud)
我正在使用适用于Mac OS X的最新R版本2.15.1.
prcomp失败后有人能看出原因吗?
这是我的新例子:
d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10))
result <- prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x
d$V1[5] <- NA
result <- prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x
Run Code Online (Sandbox Code Playgroud)
是否可以在PC1和PC2中保留第5行?在我的真实数据集中,我当然有两列以上的变量,只有一些变量丢失了,我不想丢失隐藏在其他值中的剩余信息!
nog*_*pes 21
是的,它看起来像一个"功能"(bug)na.action被完全忽略,除非你使用formula界面.这已经在R开发清单上提出.
我认为这应该被记录或标记为错误.
为了清楚起见,这可以工作,因为它访问公式接口:
prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)
Run Code Online (Sandbox Code Playgroud)
Jil*_*ina 21
如果你不愿意使用公式界面,另一个解决方案是
prcomp(na.omit(d), center = TRUE, scale = TRUE)
Run Code Online (Sandbox Code Playgroud)
其中包括na.omit直接应用于数据框.
| 归档时间: |
|
| 查看次数: |
28638 次 |
| 最近记录: |