r - 将列重命名为 Y X1 X2 X3 X4 .. XN
问题描述
我有一些数据,例如:
data(iris)
我想重命名列,即Species
变量Y
,所有其他变量都是预测变量。
我目前所拥有的并没有给我想要的结果。
iris %>%
select(Species, everything()) %>% # move the Y variable to the "front"
rename(Y = 1) %>%
rename_at(vars(2:ncol(.)), ~ paste("X", seq(2:ncol(.)), sep = ""))
预期的输出将是 colnames:
Y, X1, X2, X3, X4, X5... XN
解决方案
什么地方出了错
您的代码中的错误是它假定第二个.
(在匿名函数中)是tibble,而实际上它实际上是一个字符向量。因此,ncol(.)
是不合适的,而应该是length(.)
。此外,不需要seq()
并且给定您请求的输出,它应该从 1 开始。最后,您会很好:
iris %>%
select(Species, everything()) %>%
rename(Y = 1) %>%
rename_at(vars(2:ncol(.)), ~ paste("X", 1:length(.), sep = ""))
其他答案提供了表达此操作的替代方式。一个可能更清洁的版本是
iris %>%
select(Species, everything()) %>%
rename(Y = 1) %>%
rename_with(~ str_c("X", seq_along(.)), -1)
推荐阅读
- html - 为什么浏览器不像其他元素那样布局绝对定位的输入元素?
- reflection - 使用模型中的异构值自动填充视图
- python - 如何在不使用子进程的情况下获取 ffmpeg 的视频长度
- amazon-redshift - 关于销售数据的透视查询
- animation - 移动形状时未正确应用 SVG 动画
- python - Python - 沃尔玛的类别名称网页抓取
- c# - 定义一个泛型变量并动态改变它
- xcode - 在 xcode 12.5 中构建具有其他模块作为依赖项的模块
- windows - 如何使用“|”在 powershell 输出中查找字符串?
- java - 在Eclipse中调试java程序的问题