我想用名称替换dataframe中的单个值:
df <- data.frame(samples= c('sample_2', 'sample_2', 'sample_3', 'sample_3', 'sample_4', 'sample_4'), size=rnorm(3), group= c('group_1', 'group_1','group_1','group_2','group_2','group_2'))是否有一种简单的方法来替换第4行中字段'size‘中的值,使用’simple‘和'group’名称的组合(例如使用dplyr)?我不想使用行和列的数字索引)。
发布于 2021-12-17 20:51:41
library(dplyr)
df %>% 
  mutate(size = ifelse(samples == "sample_3" & group == "group_2", 999, size))其中999是要替换的值。
这使我们:
   samples        size   group
1 sample_2  -0.5217487 group_1
2 sample_2   0.2443456 group_1
3 sample_3  -0.4490446 group_1
4 sample_3 999.0000000 group_2
5 sample_4   0.2443456 group_2
6 sample_4  -0.4490446 group_2发布于 2021-12-17 21:07:53
除了Matt的答案,下面是如何使用基本R或数据表来实现的。
碱基R
df$size[df$samples == "sample_3" & df$group == "group2"] = 999data.table
setDT(df)
df[samples == "sample_3" & group == "group_2", size := 999]https://stackoverflow.com/questions/70398745
复制相似问题