根据另一个字符列为列分配值

EGF*_*GF1 0 r variable-assignment

我有一个如下所示的数据框:

    df <- data.frame(subject = c(a1_1, a1_1, a1_1, a1_1, a1_2, a1_2, b1_1, b1_1),
 group = c(1, NA, NA, NA, NA, 1, NA, NA, 2, NA)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,只有每个条目的第一个条目subject都有group分配。subject我的想法是用数字填充每个空格group(例如所有 a1_1 必须具有第 1 组值)。

感谢您的帮助!

akr*_*run 5

我们可以做

df$group <- match(df$subject, unique(df$subject))
Run Code Online (Sandbox Code Playgroud)

-输出

> df
   subject group
1     a1_1     1
2     a1_1     1
3     a1_1     1
4     a1_1     1
5     a1_2     2
6     a1_2     2
7     b1_1     3
8     b1_1     3
9     b1_1     3
10    b1_1     3
Run Code Online (Sandbox Code Playgroud)

数据

df <- structure(list(subject = c("a1_1", "a1_1", "a1_1", "a1_1", "a1_2", 
"a1_2", "b1_1", "b1_1", "b1_1", "b1_1")), class = "data.frame", row.names = c(NA, 
-10L))
Run Code Online (Sandbox Code Playgroud)