R语言使用ifelse生成新列时logFC列值被修改的解决咨询
问题解决方法
你的问题出在代码里的一个低级错误:把比较运算符写错成了赋值运算符。
看你最内层的ifelse条件:
ifelse(full_results$logFC<-2,"down","no_change")
这里的<-是赋值符号,运行这段代码时,会直接把full_results$logFC整个列的所有值都改成2,而不是判断logFC是否符合条件。
修正后的代码
把<-改成对应的比较运算符(如果是要判断logFC小于-2,应该写< -2,注意负号和数字间的空格,避免和赋值符号混淆;如果是判断小于等于2,就写<=2,你可以根据实际分析逻辑调整):
full_results$group <- ifelse(full_results$P.Value > 0.05, "no_change", ifelse(full_results$logFC > 2, "up", ifelse(full_results$logFC < -2, "down", "no_change")))
恢复logFC列的原始值
因为你已经执行错误代码把logFC列改成了2,现在只能重新导入原始的full_results数据,或者用之前备份的原始数据覆盖当前的数据集。
内容的提问来源于stack exchange,提问作者MUuuu Red
相关产品推荐
相关产品推荐

