R 将一行数值变量除以常数

R 将一行数值变量除以常数,r,dplyr,tidyverse,division,R,Dplyr,Tidyverse,Division,我想将所有数字列的第一行除以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 <

我想将所有数字列的第一行除以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
City一个选项是

library(tidyverse)
df %>% 
  mutate_if(is.numeric, list(~ case_when(row_number()==1 ~ ./3, 
            TRUE ~ as.numeric(.))))

如果只需要返回带有
变量的单行,请选择
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
df %>% slice(1) %>% mutate_at(3:4, ~ . / 3)
##   City   Res      Pop     Pop1
## 1    A Urban 166804.7 164.3333
或者,如果您希望第一行的所有列只包含第三列和第四列,并除以3:

df %>% slice(1) %>% select(3:4) %>% mutate_all(~ . / 3)
##        Pop     Pop1
## 1 166804.7 164.3333
df %>% slice(1) %>% mutate_at(3:4, ~ . / 3)
##   City   Res      Pop     Pop1
## 1    A Urban 166804.7 164.3333

是否只需要返回一行