在R语言DataFrame中应用指定公式生成缩放列的技术问题
问题分析与解决
你的代码核心问题在于子集提取方式错误:df[14]和df[length(df)]返回的是单列DataFrame,而.x是列向量,两者无法直接进行逐元素运算。需要改成提取向量的形式df[[14]]和df[[length(df)]]。
修正后的代码
df %>% mutate(across(contains("fpkm"), ~ (.x - df[[14]]) / (df[[length(df)]] - df[[14]]), .names = "scaled_{.col}"))
关键说明
df[[14]]:提取DataFrame的第14列作为数值向量,和.x(当前处理的fpkm列向量)匹配,能完成逐元素的减法运算。df[[length(df)]]:提取DataFrame的最后一列作为数值向量,同理完成后续运算。- 如果第14列或最后一列存在非数值值,需要先通过
as.numeric()做类型转换,避免运算报错。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

