簡體   English   中英

R將值添加到組中的tibble列

[英]R add values to tibble column in groups

我想在每個參與者的多行實驗數據中添加一個新列,其中依次為每個參與者計算新列的值。

讓我們假設以下虛擬示例:

my_data <- tibble(
  participant_id = c(rep(1, 4), rep(2, 4)),
  suffix = c('su', 'bi', 'fa', 'su', 'va', 'va', 'bi', 'su')
)

在單個后綴向量(即只有一個參與者)上,我已經能夠使用以下代碼為我提供相應的 1 和 0 向量(1 表示后綴是唯一的,0 表示后綴重復):

ifelse(!suffix %in% suffix[duplicated(suffix)], 1, 0)

但是我無法弄清楚如何為每個參與者依次執行此操作以獲取包含 1 的列,其中后綴對該參與者是唯一的,而 0則為該參與者重復。

我能想到的唯一(丑陋)方法是創建一個新的虛擬列,將participant_id '1_su', '1_bi'suffix粘合在一起(因此值將是例如'1_su', '1_bi'等)並在其上運行ifelse語句柱子。 有沒有更好的方法來做到這一點,只是按participant_id _id 分組?

一種方法是計算每個后綴出現的次數,如果它多於一個,則它不是唯一的。

# Loading required libraries
library(dplyr)

# Create sample dataframe
my_data <- tibble(
  participant_id = c(rep(1, 4), rep(2, 4)),
  suffix = c('su', 'bi', 'fa', 'su', 'va', 'va', 'bi', 'su')
)

my_data %>%
  # Group by suffix
  group_by(participant_id, suffix) %>%
  # If suffix has count equal one then unique else zero
  mutate(is_unique = ifelse(n() == 1, 1, 0)) %>%
  ungroup()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM