我有這個資料框
df1 <- data.frame(
Type1 = c("A","A","A", "AB", "AB"),
Type2 = c(1L,2L,2L, 1L, 1L),
Value = c(1L, 2L, 1L, NA, NA), , Median = c(1L, 1.5, 1.5, NA, NA))
我想通過 Type1 和 Type2 將新列中的中位數轉換為新變數“AB”,而無需匯總以在現有列中獲得新值。
df12 <- data.frame(
Type1 = c("A","A","A", "AB", "AB"),
Type2 = c(1L,2L,2L, 1L, 1L),
Value = c(1L, 2L, 1L, NA, NA), Median = c(1L, 1.5, 1.5, 1L, 1L))
我的嘗試
df1 %>% group_by(Type1, Type2) %>% mutate(Median = ifelse(Type1 == "AB" & Type2 == 1, median(Value), Median))
uj5u.com熱心網友回復:
我們可能需要在此處洗掉分組
library(dplyr)
df1 %>%
mutate(Median = replace(Median, Type1 %in% 'AB' & Type2 %in% 1,
median(Value, na.rm = TRUE)) )
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/342977.html
上一篇:在mutate和cross之后使用~separate
下一篇:如何在R圖上提取y軸值?
