在 R 中,将列 类 映射到没有 for 循环的字符向量
In R, mapping column classes to a character vector without a for loop
假设我有一个包含 X 列的数据框,以及一个包含 类 的长度为 X 的字符向量,如下所示:
classes <- c("character","numeric","numeric","character","character")
如何在不使用 for 循环的情况下 "map" 那些 类 到我的数据框的列?
有一个函数叫做 Map
。 ;)
DF <- iris
classes <- c("character","numeric","numeric","character","character")
DF[] <- Map(as, DF, classes)
sapply(DF, class)
#Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# "character" "numeric" "numeric" "character" "character"
当然,这仍然是一个循环,不会比 for
循环更有效。不过语法更清晰。
假设我有一个包含 X 列的数据框,以及一个包含 类 的长度为 X 的字符向量,如下所示:
classes <- c("character","numeric","numeric","character","character")
如何在不使用 for 循环的情况下 "map" 那些 类 到我的数据框的列?
有一个函数叫做 Map
。 ;)
DF <- iris
classes <- c("character","numeric","numeric","character","character")
DF[] <- Map(as, DF, classes)
sapply(DF, class)
#Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# "character" "numeric" "numeric" "character" "character"
当然,这仍然是一个循环,不会比 for
循环更有效。不过语法更清晰。