r - 将类似的变量应用于 r 中的多个数据集
问题描述
我有 6 个从 dat1 到 dat6 的数据,我想添加变量区域并以类似的方式标记它们,如下所示:
dat1$region <- paste("NE-1")
dat2$region <- paste("NE-2")
dat3$region <- paste("NE-3")
dat4$region <- paste("NE-4")
dat5$region <- paste("NE-5")
如何以更简洁的方式编写此代码?使用apply
或for-loop
?谢谢!!
解决方案
将所有数据框保存在列表中,然后使用lapply:
# example dataframes
dat1 <- cars[1:2, ]
dat2 <- cars[3:4, ]
dat3 <- cars[5:6, ]
myList <- list(dat1, dat2, dat3)
# myList
# [[1]]
# speed dist
# 1 4 2
# 2 4 10
#
# [[2]]
# speed dist
# 3 7 4
# 4 7 22
#
# [[3]]
# speed dist
# 5 8 16
# 6 9 10
然后更容易进行重复操作。循环遍历列表,添加区域列:
res <- lapply(seq_along(myList), function(i){
x <- myList[[ i ]]
x$region <- paste0("NE-", i)
x
})
res
# [[1]]
# speed dist region
# 1 4 2 NE-1
# 2 4 10 NE-1
#
# [[2]]
# speed dist region
# 3 7 4 NE-2
# 4 7 22 NE-2
#
# [[3]]
# speed dist region
# 5 8 16 NE-3
# 6 9 10 NE-3
推荐阅读
- android - 根据关键字搜索句子,返回符合关键字的词
- angular - ngFor 在 Angular 7 中使用 Hammer JS 滑动功能来切片索引
- c# - 如何初始化 ObservableCollection
- javascript - 即使一次又一次地刷新页面,如何在车把中永久设置所选选项?
- javascript - 我需要帮助将拖车隔间分配给动物
- dart - 如何处理 Angular Dart 模板中使用的泛型类型组件?(材料芯片)
- javascript - Jquery 选择器不适用于 ajax 响应
- c# - C# 中是否允许嵌套方法/函数/协程?
- scala - 基于另一列更新火花数据框中的列值
- android - 如何在我的数据类中声明变量以接受 countryInfo 的值(josondata):