r - 通过 for 循环在某些变量上自动化 as.factor 函数
问题描述
as.factor()
我在以下变量列表中的函数迭代中苦苦挣扎。
d$block <- as.factor(d$block)
d$CR <- as.factor(d$CR)
d$T1.ACC <- as.factor(d$T1.ACC)
d$T1.correct <- as.factor(d$T1.correct)
d$T1.response <- as.factor(d$T1.response)
我想知道如何使用 for 循环创建一些代码行以在这样的列表上迭代 as.factor 函数。实际上我使用了以下代码
d %>%
dplyr::select(
block, CR, T1.ACC, T1.correct, T1.response) %>%
lapply(., as.factor) %>%
lapply(., is.factor)
但是,当要单独验证变量时,这似乎不起作用。
> is.factor(d$block)
[1] FALSE
哪一个可能是问题?如何编写一个好的 for 循环?感谢回复
解决方案
您可以使用dplyr
'across
功能:
library(dplyr)
d <- d %>%
mutate(across(c(block, CR, T1.ACC, T1.correct, T1.response), as.factor))
如果你真的想使用for
-loop,你可以使用
for (i in c("block", "CR", "T1.ACC", "T1.correct", "T1.response")){
d[, i] <- as.factor(d[, i])
}
推荐阅读
- python - 非数字矩阵中的特征值和特征向量
- python - Python:返回一个列表
- java - 发现 javax.mail.AuthenticationFailedException:连接失败,没有指定密码?在收听密码正确的新邮件时
- r - 将 print 语句的输出保存在 R 的 data.frame 中
- mysql - minikube 中的 MYSQL 8 部署失败 .. 容器未运行 .. mysqld 在尝试检查配置时失败
- javascript - 如何根据 php 中组合框中的选定值在数据库中的文本框中显示该值?
- javascript - 如何让 jest 识别相对于项目根目录的导入?
- c - 不知道为什么我的函数不断返回错误?
- c++ - C++ 完美洗牌逻辑错误,我似乎无法修复它?
- java - 找词android应用的优化实现