gpt4 book ai didi

r - 如何对 R 中管道序列中的列选择应用函数?

转载 作者:行者123 更新时间:2023-12-01 12:06:40 24 4
gpt4 key购买 nike

我有一个包含许多列的数据框(或无论如何都是一个小标题),我只想在其中的 7 个上应用一个函数(比如 rowSums),但我不想了解其他人。诀窍是我想在管道序列中这样做
- 创建(或读取数据)
- 应用函数
- 之后的可选操作

这是一个数据框上的可复制示例,我想在前 3 列上使用 rowSums

data <- data.frame("v1" = runif(10, 0, 10), "v2" = runif(10, 0 ,10), "v3" = runif(10, 0 ,10), "v4" = rep("some_charchter", 10))

我通常会这样做的方式是
data$sum <- rowSums(data[,1:3])

但我想要这样的东西
data <- data.frame("v1" = runif(10, 0, 10), "v2" = runif(10, 0 ,10), "v3" = runif(10, 0 ,10), "v4" = rep("some_charchter", 10)) %>% 
mutate(sum = rowSums())


谢谢你的帮助 !

最佳答案

您可以使用 . 访问管道内的数据对象.因此 mutate(sum = rowSums(.[, 1:3]))诀窍:

data <- data.frame("v1" = runif(10, 0, 10), "v2" = runif(10, 0 ,10), "v3" = runif(10, 0 ,10), "v4" = rep("some_charchter", 10)) %>% 
mutate(sum = rowSums(.[, 1:3]))

data
v1 v2 v3 v4 sum
1 2.280871 0.1981815 7.5349128 some_charchter 10.013965
2 1.250208 7.6687056 0.6193483 some_charchter 9.538262
3 6.782954 3.6973201 2.7694021 some_charchter 13.249677
4 3.809574 6.8641731 3.1271489 some_charchter 13.800896
5 9.339726 4.4571677 5.4489081 some_charchter 19.245802
6 6.623371 3.9594287 0.6025072 some_charchter 11.185307
7 6.843193 1.3548732 3.1826649 some_charchter 11.380731
8 2.377099 7.5661778 9.6320561 some_charchter 19.575333
9 3.582874 2.1485691 8.2970807 some_charchter 14.028524
10 4.565336 3.7073800 0.3355328 some_charchter 8.608248

关于r - 如何对 R 中管道序列中的列选择应用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55807555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com