gpt4 book ai didi

r - 如何根据现有因子在新列中添加因子

转载 作者:行者123 更新时间:2023-12-05 01:06:09 26 4
gpt4 key购买 nike

数据如下所示:

   statenum casenum vnumber pnumber numfatal
1 48 3081 1 1 1
2 48 3080 5 1 1
3 48 3080 4 1 1
4 48 3080 1 1 1
5 48 3080 2 1 1
6 48 3080 3 1 1
7 48 3079 1 1 1
8 47 3080 1 1 1
9 47 3080 3 4 1
10 47 3080 2 3 1
11 47 3080 3 2 1
12 47 3080 2 2 1
13 47 3080 3 3 1
14 47 3080 2 1 1
15 47 3080 4 1 1
16 47 3080 3 1 1
17 47 3077 2 1 1

我有 5 行 statenum=48casenum=3080 , 和 9 行 statenum=47casenum=3080 .

如何添加一列因子,每列中的值分别为 5 和 9?

我希望添加这样的一行:
   statenum casenum vnumber pnumber numfatal new row
1 48 3081 1 1 1 1
2 48 3080 5 1 1 5
3 48 3080 4 1 1 5
4 48 3080 1 1 1 5
5 48 3080 2 1 1 5
6 48 3080 3 1 1 5
7 48 3079 1 1 1 1
8 47 3080 1 1 1 9
9 47 3080 3 4 1 9
10 47 3080 2 3 1 9
11 47 3080 3 2 1 9
12 47 3080 2 2 1 9
13 47 3080 3 3 1 9
14 47 3080 2 1 1 9
15 47 3080 4 1 1 9
16 47 3080 3 1 1 9
17 47 3077 2 1 1 1

显示行数共享相同的 statenum 和 casenum 值。

最佳答案

我认为这样的事情:

df$new <- with(df,ave(sequence(nrow(df)),list(statenum,casenum),FUN=length))

> df
statenum casenum vnumber pnumber numfatal new
1 48 3081 1 1 1 1
2 48 3080 5 1 1 5
3 48 3080 4 1 1 5
4 48 3080 1 1 1 5
5 48 3080 2 1 1 5
6 48 3080 3 1 1 5
7 48 3079 1 1 1 1
8 47 3080 1 1 1 9
9 47 3080 3 4 1 9
10 47 3080 2 3 1 9
11 47 3080 3 2 1 9
12 47 3080 2 2 1 9
13 47 3080 3 3 1 9
14 47 3080 2 1 1 9
15 47 3080 4 1 1 9
16 47 3080 3 1 1 9
17 47 3077 2 1 1 1

您可能还对“data.table”包感兴趣:
library(data.table)
DT <- data.table(df)
DT[, new_col := .N, by = list(statenum, casenum)]

关于r - 如何根据现有因子在新列中添加因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20486077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com