将整个数据帧转换为R中的标准正规形式

时间:2016-02-29 07:59:43

标签: r dataframe

我正在使用300行和70列的数据帧测试样本。 如何将整个数据帧转换为标准的普通形式。

我写了以下R代码片段:

X = ["c", "a", "d", "b"]

在我使用transmute函数的行中我得到了colName [j]的错误。 我理解错误。我试图同时评估LHS和RHS,这是不可能的,它只是取代了这些值。

不使用任何r包如何解决并将整个数据帧转换为标准的正常形式。

2 个答案:

答案 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的经验,但这可能是一个更好更简单的想法。