【发布时间】:2019-05-10 04:38:25
【问题描述】:
内置函数scale会对dataframe的每一列进行标准化,但是会将原始dataframe转化为矩阵。如何解决?如果我只想标准化一些列呢?
【问题讨论】:
-
你能用dput提供一些数据和你正在运行的代码吗?
标签: r
内置函数scale会对dataframe的每一列进行标准化,但是会将原始dataframe转化为矩阵。如何解决?如果我只想标准化一些列呢?
【问题讨论】:
标签: r
这里有两个问题。首先,如何在不丢失data.frame 结构的情况下插入data.frame。在这种情况下,像这样使用[<-:
df <- data.frame(a=1:3, b=10:12, c=20:22)
df[] <- scale(df)
df
# a b c
#1 -1 -1 -1
#2 0 0 0
#3 1 1 1
这里有更详细的介绍:R: Easy assignments with empty square brackets? x[]<-
第二个问题是如何更新data.frame 的子集。再次使用[<-,但这次匹配<- 左右两侧的选择:
df <- data.frame(a=1:3, b=10:12, c=20:22)
df[1:2] <- scale(df[1:2])
df
# a b c
#1 -1 -1 20
#2 0 0 21
#3 1 1 22
【讨论】: