loops - 如何在循环中重命名列和绑定数据框?
问题描述
下面是我正在尝试做的一个示例:我需要重复第 1 列和第 2 列并提取第 3:n 列,然后将数据帧组合成 1 个数据集。如何在循环中包含名称函数并绑定数据框?列数可以根据我的真实数据而改变,因此我需要使这个动态......谢谢。
library(dplyr)
nam <- c("j","g","r")
id <- c(1,2,3)
c1 <- c("fdg","afa","hdfg")
c2 <- c("gfdsfaf","sfgsgs","agafaf")
c3 <- c("hdfg","sgs","rtwe")
y <- data.frame(nam,id,c1,c2,c3)
cntr <- ncol(y)-2
#create dataframes
for(i in 1:cntr){
(assign(paste0("r",i),as.data.frame(y[,c(1:2,i+2)])))
}
#rename section
names(r1)[3] <- "c"
names(r2)[3] <- "c"
names(r3)[3] <- "c"
#stack dataframes
xyz <- bind_rows(r1,r2,r3)
解决方案
找到了 Stibu 在 2016 年发布的答案。至少是重命名难题的一部分。
for (i in paste0("r",1:cntr)){
call <- bquote(names(.(as.name(i)))[3] <- "c")
eval(call)
}
推荐阅读
- javascript - 更新许多图表时的绘图性能
- javascript - 将模板文字拆分为多行不起作用
- node.js - Sequelize 查询(findAll where include)多对多关系
- python - pyautogui typewrite() 只输出大写
- swift - 在textview中一起使用Swift常规和粗体字体
- python - 'numpy.float64' 对象在填充 NaN 时没有属性 'fillna'
- powerbi - Power BI Total 不加起来
- google-api - 如何在 Google Pay Android 中添加送货方式
- python - AttributeError:“NoneType”对象在 beautifulsoop 网络抓取中没有属性“get_text”
- javascript - 将变量从 shell 脚本传递到 mongo javascript 失败