R语言 将某些列中的值除以某列的值并在数据表中替换

ac1kyiln  于 2023-03-10  发布在  其他
关注(0)|答案(2)|浏览(367)

使用R,我想用数据表中21到150列的值除以5列的值,然后用新的除得值替换21到150列的值,比如21列除以5列,然后用商替换21列的新值。列22的相同值被列5除,然后用除后的值更新列22的值。
首先,我尝试了这个方法,但是它没有替换列中的值,然后输出没有列1-20...

df1000 <- df1000[,21:150] / df1000[,5]

所以后来我试了dplyr但是出了点问题

df1000 %>% mutate_at(seq(21:150),funs(df[,21:150]/df[,5]))

由于我的样本很大,有150列,而不是提供样本数据,我们可以使用一个内置的数据集,如虹膜,我可以调整列范围?

oaxa6hgo

oaxa6hgo1#

你的第一次尝试真的很接近了。只需要用相同的索引把新的数据存储回去。

df1000[,21:150] <- df1000[,21:150] / df1000[,5]
relj7zay

relj7zay2#

在dplyr中,您应该使用across synthax,因为_at/_all/_if函数在dplyr中挂起:

# you can pipe %>% just like before, I just prefer to use one line
# use the across() to identify columns and 
# use ~ to intoduce the function to be applied
# use .x to refer to input columns
dplyr::mutate(df1000, dplyr::across(21:150, ~ .x / df1000[,5]))

# or you can use de column name directly (I called the fifth
dplyr::mutate(df1000, dplyr::across(21:150, ~ .x / fifth_column))

相关问题