将一行数值变量除以一个常量
Divide a row of numeric variables by a constant
我想将所有数字列的第一行除以 3。
City <- rep(LETTERS[1:3], each = 2)
Res <- factor(rep(c("Urban", "Rural"), times = length(City)/2))
set.seed(12345)
Pop <- rpois(n = length(City), lambda = 500000)
Pop1 <- rpois(n = length(City), lambda = 500)
df <- data.frame(City, Res, Pop, Pop1)
df
df[1, 3:4]/3
Pop Pop1
1 166804.7 164.3333
想知道如何用 tidyverse
来完成这件事。
一个选项是
library(tidyverse)
df %>%
mutate_if(is.numeric, list(~ case_when(row_number()==1 ~ ./3,
TRUE ~ as.numeric(.))))
如果我们只需要 return 带有 select
ed 变量的一行
df %>%
slice(1) %>%
select_if(is.numeric) %>%
mutate_all(list(~ ./3))
如果只想将第一行的第三列和第四列除以 3:
df %>% slice(1) %>% select(3:4) %>% mutate_all(~ . / 3)
## Pop Pop1
## 1 166804.7 164.3333
或者如果您希望第一行的所有列仅第三列和第四列除以 3:
df %>% slice(1) %>% mutate_at(3:4, ~ . / 3)
## City Res Pop Pop1
## 1 A Urban 166804.7 164.3333
我想将所有数字列的第一行除以 3。
City <- rep(LETTERS[1:3], each = 2)
Res <- factor(rep(c("Urban", "Rural"), times = length(City)/2))
set.seed(12345)
Pop <- rpois(n = length(City), lambda = 500000)
Pop1 <- rpois(n = length(City), lambda = 500)
df <- data.frame(City, Res, Pop, Pop1)
df
df[1, 3:4]/3
Pop Pop1
1 166804.7 164.3333
想知道如何用 tidyverse
来完成这件事。
一个选项是
library(tidyverse)
df %>%
mutate_if(is.numeric, list(~ case_when(row_number()==1 ~ ./3,
TRUE ~ as.numeric(.))))
如果我们只需要 return 带有 select
ed 变量的一行
df %>%
slice(1) %>%
select_if(is.numeric) %>%
mutate_all(list(~ ./3))
如果只想将第一行的第三列和第四列除以 3:
df %>% slice(1) %>% select(3:4) %>% mutate_all(~ . / 3)
## Pop Pop1
## 1 166804.7 164.3333
或者如果您希望第一行的所有列仅第三列和第四列除以 3:
df %>% slice(1) %>% mutate_at(3:4, ~ . / 3)
## City Res Pop Pop1
## 1 A Urban 166804.7 164.3333