【问题标题】:Assign value to column based on another character column [duplicate]根据另一个字符列为列赋值[重复]
【发布时间】:2021-11-29 04:13:31
【问题描述】:

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

    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)

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

感谢您的帮助!

【问题讨论】:

  • 运行您的代码时,我得到object 'a1_1' not found。您的意思是“a1_1”联合国引号?你能展示一下你的预期输出吗?

标签: r variable-assignment


【解决方案1】:

我们可以做

df$group <- match(df$subject, unique(df$subject))

-输出

> 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

数据

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))

【讨论】:

    【解决方案2】:

    如果您的数据始终采用相同的结构,您可以将分组分配从主题信息中提取出来:

    library(stringr)
    df <- data.frame(subject = c(rep('a1_1', 4), rep('a1_2', 2), rep('b1_1',4)))
    df$group <- str_sub(df$subject, -1)
    
    

    str_sub 提取字符的最后一个元素以分配给组,假设它是您想要的最后一个字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2020-04-10
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多