r - 在R中转换为循环
问题描述
我是 R 新手,并试图将以下段转换为循环:
tea_s_eachclicks=as.data.frame(matrix(nrow=1,ncol=12))
tea_s_eachclicks$V1=sum(mergetea_s[1:45,119:122]=='2')
tea_s_eachclicks$V2=sum(mergetea_s[1:45,123:126]=='2')
tea_s_eachclicks$V3=sum(mergetea_s[1:45,127:130]=='2')
tea_s_eachclicks$V4=sum(mergetea_s[1:45,131:134]=='2')
tea_s_eachclicks$V5=sum(mergetea_s[1:45,135:138]=='2')
tea_s_eachclicks$V6=sum(mergetea_s[1:45,139:142]=='2')
tea_s_eachclicks$V7=sum(mergetea_s[1:45,143:146]=='2')
tea_s_eachclicks$V8=sum(mergetea_s[1:45,147:150]=='2')
tea_s_eachclicks$V9=sum(mergetea_s[1:45,151:154]=='2')
tea_s_eachclicks$V10=sum(mergetea_s[1:45,155:158]=='2')
tea_s_eachclicks$V11=sum(mergetea_s[1:45,159:162]=='2')
tea_s_eachclicks$V12=sum(mergetea_s[1:45,163:166]=='2')
有 4 列的mergetea_s
12 段,应计入tea_s_eachclicks
但仅当值为“2”时
非常感谢每一个建议!
解决方案
你可以这样做:
# Define constants (avoid magic numbers):
rows <- 1:45
cols_ref <- 119:122
n_steps <- 12
# Preallocate
tea_s_eachclicks <- as.data.frame()
for (i in 1:n_steps) {
tea_s_eachclicks[[paste0("V", i)]] <-
sum(mergetea_s[rows, cols_ref + 4*(i-1)] == '2')
}
由于您没有提供可重现的数据,因此无法对此进行测试。
推荐阅读
- vue.js - vee-validate 循环下每一行的文件上传验证
- r - 反应数据表中的R闪亮错误日期输出
- haskell - 如何在 Windows 上安装 threadscope?
- scala - SBT 的依赖问题
- python - Python 3.6.0 执行卡在 importlib.import_module
- css - 样式化 react-alice-carousel 点
- sql - 嵌套项目未正确分组
- python - 如何在熊猫数据框上返回空值或无?
- javascript - 使用swipejs时如何选择指定对象周围的相邻元素
- python-3.x - Python requests.text 添加空行