R - 仅在具有混合类型的数据框中缩放数值

Jim*_*phy 15 r

我正在使用具有混合数据类型(数字和字符)的数据框,并且还具有字符键作为主要标识符.我想缩放和居中数字变量.我尝试过使用scale()函数,但它要求所有字段都是数字.当我只取数字字段并缩放它们时,我必须删除字符标识符以便能够缩放它们.

我理想的最终状态是我有一个包含字符字段和缩放数字字段的数据框.

我意识到这是一个新手问题,所以请温柔;-)

谢谢!

吉姆

Jam*_*ing 20

这样的事情应该做你想要的:

library(MASS)
ind <- sapply(anorexia, is.numeric)
anorexia[ind] <- lapply(anorexia[ind], scale)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ius 7

可以使用dplyr::mutate_if以下命令直接完成此操作:

library(dplyr)

iris %>%
    mutate_if(is.numeric, scale)
Run Code Online (Sandbox Code Playgroud)