第一次标记基于参数的记录出现在r数据框中

丹尼

我有一个df包含几列的数据框

数据框已按联系人ID排序C_IDAC_ID可以在数据框中多次出现。我想MainRecord在第一次C_ID出现时在列中添加“ X”,以便结果如下:

C_ID  Name  MainRecord
1     JM    X
1     JM  
1     JM  
2     DM    X
3     TY    X
3     TY

我认为我的解决方案将需要引用该head函数:df[,head(1)]

阿克伦

我们可以按“ C_ID”,“名称”分组,并使用以下命令创建“ MainRecord” case_when

library(dplyr)
df1 %>%
  group_by(C_ID, Name) %>%
  mutate(MainRecord = case_when(row_number()==1 ~ "X", TRUE ~ ""))
# A tibble: 6 x 3
# Groups:   C_ID, Name [3]
#   C_ID Name  MainRecord
#  <int> <chr> <chr>     
#1     1 JM    X         
#2     1 JM    ""        
#3     1 JM    ""        
#4     2 DM    X         
#5     3 TY    X         
#6     3 TY    ""        

或另一个选择是 ifelse

df1 %>%
   group_by(C_ID, Name) %>% 
   mutate(MainRecord = ifelse(row_number()==1, "X", ""))

或使用索引

df1 %>% 
   group_by(C_ID, Name) %>% 
   mutate(MainRecord = c("", "X")[(row_number()==1) + 1])

或使用data.table,使用来获取行索引,.I并分配(:=)与行相对应的'X'值

library(data.table)
i1 <- setDT(df1)[, .I[seq_len(.N) == 1], .(C_ID, Name)]$V1
df1[i1, MainRecord := "X"]

或搭配 base R

i1 <- with(df1, ave(seq_along(C_ID), C_ID, Name, FUN = seq_along)==1)
df1$MainRecord[i1] <- "X"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

替换第一次出现在字符串列表中的字符

确定某个值是否第一次出现在列中

在 R 中,从第二列的第一次出现更改数据框列

在 R 数据框中查找第一次和最后一次出现的项目

如何在 R 数据框中添加变量第一次和最后一次出现的列?

第一次和第二次出现在PostgreSQL中的行ID

python基于第一次出现的拆分数据框

Java的LAMBDA | 发现字符串数组的位置第一次出现在字符串中

gsub:删除直到第一次出现而不是最后一次出现在一行中的给定字符

如何保持第一次出现的值在python的数据框中重复出现?

正则表达式第一次出现在单词之前

根据 R 中的单独列标记列中值的第一次连续出现

如何在python数据框中的列中获取值的第一次出现

检查数据框值中的条件第一次出现

在熊猫数据框中第一次出现条件之前删除所有行

在熊猫数据框中第一次出现条件后删除所有行

在数据框中仅保留第一次出现值的连续重复

jQuery UI可排序占位符出现在错误的位置,但仅在第一次悬停时出现

查找计数,直到一个数字第一次出现在另一个变量的所有相同值的变量中

如何创建一列,使其值等于该行中第一次出现在其自己的列中的数字1 ,?

错误只出现在第一次调用,一旦屏幕再次打开,错误就会消失,

为什么在Google App Engine中总是只有11秒的延迟才出现在第一次请求中?

在熊猫数据框中找出事件的中间出现“ 0”和事件的第一次出现“ 1”

Bootstrap 弹出窗口不会第一次出现在使用 ajax 的悬停事件上

当在列表中使用.index时,仅在其第一次出现在数组中时才返回

在数据框列中获取一系列元素中第一次出现的索引

基于第一次出现状态标志的子集数据

当日期在x轴上并指出状态时,提取数据框中第一次出现变量的行

数据框:按天分组并在第一次出现后在特定列中设置值