我是R的新手,我一直在尝试乘法和替换数据框中的某些值,但均未成功。基本上,我想做的是,当我的df(任意列)中的值是
0 以防万一... 例如,如果我的数据框中的值为0.15,我希望它为15。isRowFilteredByUser
答案 0 :(得分:0)
一个选择是基于表达式创建逻辑矩阵。从数据集中提取值,乘以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 ~ .))