根据另一个df的条件,在df中添加0或1

时间:2017-11-16 12:59:10

标签: r dataframe

我的数据框df1包含:

file_name  loc
rep1   chr1:62161618:62162663:-
rep2   chr1:62161618:62162669:-
...

我生成一个空矩阵(df2),其中file_name为行,loc为列。我想在df1中出现的每个位置添加“1”值。举个例子:

     chr1:62161618:62162663:-    chr1:62161618:62162669:-...
rep1           1                            0
rep2           0                            1
...

有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

使用#include <windows.h> FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)); dplyr的解决方案。

tidyr

数据

library(dplyr)
library(tidyr)

dt2 <- dt %>%
  mutate(condition = 1) %>%
  spread(loc, condition, fill = 0)
dt2
#   file_name chr1:62161618:62162663:- chr1:62161618:62162669:-
# 1      rep1                        1                        0
# 2      rep2                        0                        1