R 如果数据帧中的每个值都是';它大于某个数字
所以我有一个混合值的数据框架——它非常混乱。我有10分和100分的价值观。我想把它们标准化为百分比 我的逻辑是,如果某个值大于10,那么我可以除以100。如果某个值等于或小于10,我将把这些值除以10 当前帧R 如果数据帧中的每个值都是';它大于某个数字,r,dataframe,R,Dataframe,所以我有一个混合值的数据框架——它非常混乱。我有10分和100分的价值观。我想把它们标准化为百分比 我的逻辑是,如果某个值大于10,那么我可以除以100。如果某个值等于或小于10,我将把这些值除以10 当前帧 col_1 col_2 col_3 40 16 18 2 9 20 89 3 7.4 23 8 34 新框架 col_1 col_2
col_1 col_2 col_3
40 16 18
2 9 20
89 3 7.4
23 8 34
新框架
col_1 col_2 col_3
.40 .16 .18
.20 .90 .20
.89 .30 .74
.23 .80 .34
使用这个示例数据帧
dd <- read.table(text="
col_1 col_2 col_3
40 16 18
2 9 20
89 3 7.4
23 8 34", header=T)
与@MrFlick类似的逻辑,但没有
ifelse
和lappy
:
df/c(10, 100)[(df > 10)+1]
# col_1 col_2 col_3
#1 0.40 0.16 0.18
#2 0.20 0.90 0.20
#3 0.89 0.30 0.74
#4 0.23 0.80 0.34
谢谢你的回答!它起作用了,但我更喜欢它!谢谢你的帮助!我使用的是dplyr,我不知道
everything()
函数。谢谢你的新消息!
dd %>%
mutate(across(everything(), ~if_else(.x>10, .x/100, .x/10)))
df/c(10, 100)[(df > 10)+1]
# col_1 col_2 col_3
#1 0.40 0.16 0.18
#2 0.20 0.90 0.20
#3 0.89 0.30 0.74
#4 0.23 0.80 0.34