簡體   English   中英

如何在同一列數據框中執行不同的操作?

[英]How can I perform different operations in the same column of data frame?

我正在使用 R 來分析數據。 我有一個有序的分組時間序列,顯示樣本在不同時間的亮度,從 0 開始

團體 時間 亮度 保留
一種 0 100 北美
一種 50 70 = 70 /100
一種 100 20 = 20/100
0 90后 北美
50 80 = 80 /90
100 50 = 50/90

要計算保留時間,我必須除以該組在時間 0 時的亮度。 但是整個表中有多個時間零點。 我嘗試使用 for 循環,但由於數據的長度,這需要大約 15 秒才能運行; 我正在尋找更有效的方法。

感謝您的幫助:)

您可以使用ifelse來計算Retention on Time不等於 0。

library(dplyr)

df %>% 
  group_by(Group) %>% 
  mutate(Retention = ifelse(Time != 0, Brightness/Brightness[Time == 0], NA))

# A tibble: 6 × 4
# Groups:   Group [2]
  Group  Time Brightness Retention
  <chr> <int>      <int>     <dbl>
1 A         0        100    NA    
2 A        50         70     0.7  
3 A       100         20     0.2  
4 B         0         90    NA    
5 B        50         80     0.889
6 B       100         50     0.556

數據

df <- structure(list(Group = c("A", "A", "A", "B", "B", "B"), Time = c(0L, 
50L, 100L, 0L, 50L, 100L), Brightness = c(100L, 70L, 20L, 90L, 
80L, 50L)), class = "data.frame", row.names = c(NA, -6L))

暫無
暫無

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

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