【问题标题】:How to scale data frame but retain type of dataframe?如何缩放数据框但保留数据框类型?
【发布时间】:2019-05-10 04:38:25
【问题描述】:

内置函数scale会对dataframe的每一列进行标准化,但是会将原始dataframe转化为矩阵。如何解决?如果我只想标准化一些列呢?

【问题讨论】:

  • 你能用dput提供一些数据和你正在运行的代码吗?

标签: r


【解决方案1】:

这里有两个问题。首先,如何在不丢失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 的子集。再次使用[&lt;-,但这次匹配&lt;- 左右两侧的选择:

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

【讨论】:

    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2017-09-19
    • 1970-01-01
    • 2023-02-16
    相关资源
    最近更新 更多