根据R中的条件乘以和替换数据框中的值
Multiply and replace values in data frame according to condition in R
我是 R 的新手,我一直在尝试乘以和替换我的数据框中的某些值,但没有成功。基本上,我想要做的是,当我的 df(任何列)中的值是
0 < x < 1,将其乘以 10,然后用该等式的结果替换该值。
看一眼我的 df 以防万一...
'data.frame': 404 obs. of 15 variables:
$ D3: num 16.1 17.1 16.1 16.1 17.2 ...
$ TH : num 9.9 8.6 9.7 7.7 7.6 7.6 8.7 9.8 9.8 7.7 ...
$ D2 : num 33.3 29.3 30.3 29.3 33.3 ...
$ D1 : num 15.1 14.1 21.1 16.1 19.1 ...
$ P : num 20.7 14.1 19.2 18.2 12.1 ...
$ D5 : num 9.9 11.1 11.9 11.1 11.1 ...
$ D13: num 13.1 14.1 13.1 13.8 12.9 ...
$ D7 : num 11.8 11.1 12.1 14.1 12.1 ...
$ D16: num 12.9 12.1 12.9 11.1 12.9 12
例如,如果我的数据框中的值是 0.15,我希望它是 15。
一个选项是根据表达式创建一个逻辑矩阵。从数据集中提取值,乘以 10 并更新结果
i1 <- df1 >0 & df1 < 1
df1[i1] <- df1[i1] * 10
如果我们不想替换初始对象,则使用 replace
df2 <- replace(df1, i1, df1[i1] * 10)
一个 tidyverse
选项和一些额外的列类型检查将是
library(dplyr)
df1 %>%
mutate_if(is.numeric, ~ case_when(between(., 0, 1) ~ . * 10, TRUE ~ .))
我是 R 的新手,我一直在尝试乘以和替换我的数据框中的某些值,但没有成功。基本上,我想要做的是,当我的 df(任何列)中的值是 0 < x < 1,将其乘以 10,然后用该等式的结果替换该值。
看一眼我的 df 以防万一...
'data.frame': 404 obs. of 15 variables:
$ D3: num 16.1 17.1 16.1 16.1 17.2 ...
$ TH : num 9.9 8.6 9.7 7.7 7.6 7.6 8.7 9.8 9.8 7.7 ...
$ D2 : num 33.3 29.3 30.3 29.3 33.3 ...
$ D1 : num 15.1 14.1 21.1 16.1 19.1 ...
$ P : num 20.7 14.1 19.2 18.2 12.1 ...
$ D5 : num 9.9 11.1 11.9 11.1 11.1 ...
$ D13: num 13.1 14.1 13.1 13.8 12.9 ...
$ D7 : num 11.8 11.1 12.1 14.1 12.1 ...
$ D16: num 12.9 12.1 12.9 11.1 12.9 12
例如,如果我的数据框中的值是 0.15,我希望它是 15。
一个选项是根据表达式创建一个逻辑矩阵。从数据集中提取值,乘以 10 并更新结果
i1 <- df1 >0 & df1 < 1
df1[i1] <- df1[i1] * 10
如果我们不想替换初始对象,则使用 replace
df2 <- replace(df1, i1, df1[i1] * 10)
一个 tidyverse
选项和一些额外的列类型检查将是
library(dplyr)
df1 %>%
mutate_if(is.numeric, ~ case_when(between(., 0, 1) ~ . * 10, TRUE ~ .))