我有一个表示折叠变化的数据框,如下所示:
> df1 <- data.frame(A=c(1.74,-1.3,3.1), B=c(1.5,.9,.71), C=c(1.1,3.01,1.4))
A B C
1 1.74 1.50 1.10
2 -1.30 0.90 3.01
3 3.10 0.71 1.40
并且pvalues的数据帧同样匹配行和列:
> df2 <- data.frame(A=c(.02,.01,.8), B=c(NA,.01,.06), C=c(.01,.01,.03))
A B C
1 0.02 NA 0.01
2 0.01 0.01 0.01
3 0.80 0.06 0.03
我想要的是修改df1中的值,以便只保留df2 <.05中具有相应pvalue的值,否则替换为NA . 注意df2中也有NA .
> desired <- data.frame(A=c(1.74,-1.3,NA), B=c(NA,.9,NA), C=c(1.1,3.01,1.4))
> desired
A B C
1 1.74 NA 1.10
2 -1.30 0.9 3.01
3 NA NA 1.40
我首先尝试在这些数据帧上使用矢量语法,但这不起作用 . 然后我按列尝试了for循环,但也失败了 .
我不认为我理解如何索引每个i,j位置,然后用基于逻辑的df2值替换df1值 .
或者如果在R中有更好的方法
2 回答
你可以试试这个:
日期:
ifelse
和as.matrix
似乎可以解决问题 .结果