【发布时间】:2015-08-15 09:03:20
【问题描述】:
晚上好,
我有一个 150.000 行和 7 列的大型数据框,如下所示
ID cola colb colc cold cole colf
XXXYYY 0 0 0 0 0 0
XXYYXX 0 0 0 0 0 0
XYXYXY 0 0 0 0 0 0
YYYXXX 0 0 0 0 0 0
...
我的数据框中还有包含 ID 子集的向量 veca、vecb、vecc、vecd、vece 和 vecf。
我想编写一个循环,在该循环中,我根据数据帧和向量之间 ID 号的重叠将 1 分配给列。
例如,如果veca <- c("XXXYYY", "XXYYXX") 那么输出应该是:
ID cola colb colc cold cole colf
XXXYYY 1 0 0 0 0 0
XXYYXX 1 0 0 0 0 0
XYXYXY 0 0 0 0 0 0
YYYXXX 0 0 0 0 0 0
...
...我想对所有列重复这一点。
通常我会这样写:
dataframe$cola[dataframe$ID %in% veca ] <- 1
但是,我在循环中编写上述内容时遇到了麻烦。我尝试了 paste 和 assign 的各种组合,但到目前为止还没有运气。
稍后在我的代码中,我还想根据 ID 号的类似重叠删除数据帧的行(通常写为 dataframe <- dataframe[!(dataframe$ID %in% veca),]),但我认为这与
最后,我要补充一点,我的平台是 x86_64-w64-mingw32,我的 R 版本是 R 版本 3.1.2
非常感谢您的帮助。
【问题讨论】: