我正在使用300行和70列的数据帧测试样本。 如何将整个数据帧转换为标准的普通形式。
我写了以下R代码片段:
X = ["c", "a", "d", "b"]
在我使用transmute函数的行中我得到了colName [j]的错误。 我理解错误。我试图同时评估LHS和RHS,这是不可能的,它只是取代了这些值。
不使用任何r包如何解决并将整个数据帧转换为标准的正常形式。
答案 0 :(得分:0)
正如我在评论中所说,使用scale
函数:
x <- matrix(runif(300*70), 300, 70)
x <- as.data.frame(x)
dim(x)
# [1] 300 70
y <- scale(x)
head(apply(y, 2, mean))
# V1 V2 V3 V4 V5 V6
# -6.641678e-17 5.092425e-17 -4.435159e-17 8.974583e-17 8.300724e-17 9.999023e-17
head(apply(y, 2, sd))
# V1 V2 V3 V4 V5 V6
# 1 1 1 1 1 1
答案 1 :(得分:-1)
我认为以下行应该有效:
newSample <- testSample
for(j in 1:ncol(testsample)){
mu <- mean(testsample[,j])
sigma <- sd(testsample[,j])
newSample[,j] <- (newSample[,j]-mu)/sigma)
}
否则请尝试删除i
中的索引transmute
。
我没有使用scale
的经验,但这可能是一个更好更简单的想法。