r - 使用 for 循环创建包含其他列中值计数的列
问题描述
首先,我是 Stackoverflow 的新手,也是 R 的新手。因此,请多多包涵我的潜在误解等。
我有一个包含几列的数据框。我正在尝试创建一个新列,该列将包含其他列之一中的值的计数。该任务指定我需要使用 for 循环来实现这一点,即使它可能不是最有效或最有效的方法。
我已经尝试过这种方法,但由于某种原因它不起作用。
for (i in nrow(df)) {
df$new_col[i] <- sum(df$old_col == df$old_col[i], na.rm = TRUE)
}
如果你有这样的数据:
old_col name
1 a
1 b
2 c
3 d
代码应该产生:
old_col name new_col
1 a 2
1 b 2
2 c 1
3 d 1
我很感激任何帮助!
解决方案
你可以试试这个(非常初学者的解决方案):
for(i in 1:nrow(df)){
if(i==1){
df$new_col[i]=1 # For first point
}
else if(df$old_col[i]==df$old_col[i-1]){
df$new_col[i]=df$new_col[i-1]+1 # If old_col values are same
}
else{
df$new_col[i]=1 # When we have a new old_col value
}
}
输出:
old_col name new_col
1 1 a 1
2 1 b 2
3 2 c 1
4 3 d 1
推荐阅读
- function - 元素不会被 lreplace 命令替换
- python - 迭代 Python zip 列表并将结果保存在两个不同的列表中
- php - SimpleXMLElement : 添加子元素时删除 ns1 前缀
- python - 没有在 Django 中更新个人资料图片
- javascript - 我正在尝试使用脚本在 HTML 中创建一个 8x8 正方形表
- node.js - 如何在 Node JS 中重现和防止 ESOCKETTIMEDOUT
- maven - TestNG中的测试用例不是由maven执行的
- swiftui - 在滚动视图中初始化无数据,稍后添加无显示
- typescript - 如何清除 ion-datetime ionic4 的值
- java - Spring Data Mongo 没有访问器来设置已初始化的最终属性