我确信有一种非常简单的方法可以完成这项任务,但我似乎无法弄明白。我有两个数据帧具有完全相同的数据,但来自两个不同的位置。
df1 <- data.frame(a=c(1,2,3,NA),b=c(1,5,4,6))
df2 <- data.frame(a=c(3,4,5,6),b=c(7,8,9,NA))
我想要的输出是两个有新版本的df1和df2完全相同,但底行只包含NA值。即如果一个数据帧中有NA值,我需要在另一个数据帧中的相应单元格上复制...
df1[4,2] <- NA
df2[4,1] <- NA
我从相反的角度看到了解决问题的非常相似的问题(例如Filling missing values in a data.frame from another data.frame),但我无法想象如何将其应用于我自己的数据。先感谢您。
答案 0 :(得分:3)
我们可以根据两个数据集中任意一个出现PowerShell ps = PowerShell.Create();
ps.AddScript(“D:\PSScripts\MyScript.ps1”).Invoke();
来创建一个索引并乘以
NA
答案 1 :(得分:3)
以下是一些可能性。 (1)似乎是最干净,最清晰的意图。 (3)有效,但在排除副作用方面似乎不必要地复杂。
1)替换尝试ini_set('memory_limit', '2048M');
。
replace
如果df1new <- replace(df1, is.na(df2), NA)
df2new <- replace(df2, is.na(df1), NA)
和df1new
替换为df2new
和df1
,这将继续有效,但会增加复杂性。在这种情况下,最好在之后分配df2
和df1
(即df2
)以避免复杂性。
2)索引它可以像这样写:
df1 <- df1new; df2 <-df2new
3)破坏性索引不确定这个是一个好主意,但它可以在这里工作:
df1new <- df1
df1new[is.na(df2)] <- NA
df2new <- df2
df2new[is.na(df1)] <- NA