首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用名称替换df中的单个值

用名称替换df中的单个值
EN

Stack Overflow用户
提问于 2021-12-17 20:47:31
回答 2查看 53关注 0票数 1

我想用名称替换dataframe中的单个值:

代码语言:javascript
运行
复制
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)?我不想使用行和列的数字索引)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-17 20:51:41

代码语言:javascript
运行
复制
library(dplyr)

df %>% 
  mutate(size = ifelse(samples == "sample_3" & group == "group_2", 999, size))

其中999是要替换的值。

这使我们:

代码语言:javascript
运行
复制
   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
票数 2
EN

Stack Overflow用户

发布于 2021-12-17 21:07:53

除了Matt的答案,下面是如何使用基本R或数据表来实现的。

碱基R

代码语言:javascript
运行
复制
df$size[df$samples == "sample_3" & df$group == "group2"] = 999

data.table

代码语言:javascript
运行
复制
setDT(df)
df[samples == "sample_3" & group == "group_2", size := 999]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70398745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档