r - 如何使用 dplyr 将整数添加到 r 中的所有数字列
问题描述
我有一个数据框,其中包含一个 ID 列和多个包含密度测量的数字列。为了使密度呈正态分布,我需要记录日志,但因为我的密度值为 0,所以我需要将所有密度测量值增加 0.5,以免在记录转换时获得 Inf 数据点。我如何使用 dplyr 做到这一点?
样本数据:
ID `Image Tag` `CD3 Global Den… `CD8 Global Den… `CD20 Global De… `CD3 Tumour Den… `CD8 Tumour Den…
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 IM_10 NA 608. 755. 51.0 868. 1066.
2 IM_1… NA 27.5 69.3 0.550 30.4 75.2
3 IM_1… NA 19.6 17.0 1.03 53.2 42.0
4 IM_1… NA 109. 89.0 47.7 725. 594.
5 IM_1… NA 219. 171. 0.501 531. 416.
6 IM_1… NA 4.00 0 0 5.94 0
我尝试使用
df1 <- df %>% group_by(ID) %>%
summarise_all(funs(mean(., na.rm=TRUE))) %>%
mutate_at(which(sapply(., is.numeric)), funs(sum(0.5)))
但这会将我所有的数字列替换为 0.5,而不是在原始密度上添加 0.5。
ID `Image Tag` `CD3 Global Den… `CD8 Global Den… `CD20 Global De… `CD3 Tumour Den… `CD8 Tumour Den…
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 IM_10 0.5 0.5 0.5 0.5 0.5 0.5
2 IM_1… 0.5 0.5 0.5 0.5 0.5 0.5
3 IM_1… 0.5 0.5 0.5 0.5 0.5 0.5
4 IM_1… 0.5 0.5 0.5 0.5 0.5 0.5
5 IM_1… 0.5 0.5 0.5 0.5 0.5 0.5
6 IM_1… 0.5 0.5 0.5 0.5 0.5 0.5
任何想法如何做到这一点?
解决方案
如果你只想添加一个
df%>% map_if(is.numeric, ~.+1)
推荐阅读
- geolocation - 在 Salesforce 中跟踪来宾用户的地理位置
- jquery - Evo-Calendar 自定义语言支持问题
- python - 在 Windows 10 中向谷歌助手发送文本输入
- visual-studio - VS 2019如何选择为哪个.asm文件创建listing文件
- nativescript - 从 NativeScript Playground 迁移到本地
- python - 如何在numpy中使用其索引索引数组?
- asp.net - 对表引入 FOREIGN KEY 约束可能会导致循环或多个级联路径。使用实体框架创建数据库时
- r - 是否有 R 函数来查找存储库的最后一次提交的 SHA?
- html - 如何使用跨度标签将类应用于标题标题
- sas - SAS - SGPLOT - 添加 XAXIS 组标签