我有一个问题可能很难解决,但是我正在尝试。
>data
xloc genes
1 XLOC_000002 AT1G01046
2 XLOC_000006 AT1G01130
3 XLOC_000009 CUFF.14.1
4 XLOC_000010 CUFF.15.1
5 XLOC_000027 AT1G01448
6 XLOC_000027 AT1G01448
我想将两列连接起来,用第一列中的元素替换包含“ CUFF”的行,如下所示:
xloc genes x
1 XLOC_000002 AT1G01046 AT1G01046
2 XLOC_000006 AT1G01130 AT1G01130
3 XLOC_000009 CUFF.14.1 XLOC_000009
4 XLOC_000010 CUFF.15.1 XLOC_000010
5 XLOC_000027 AT1G01448 AT1G01448
6 XLOC_000027 AT1G01448 AT1G01448
我正在尝试:
data$x <- ifelse(grepl("^CUFF",data$genes),data$xloc, data$genes)
但是输出是这样的:
xloc genes x
1 XLOC_000002 AT1G01046 5
2 XLOC_000006 AT1G01130 16
3 XLOC_000009 CUFF.14.1 9
4 XLOC_000010 CUFF.15.1 10
5 XLOC_000027 AT1G01448 51
6 XLOC_000027 AT1G01448 51
请帮助
致谢
答案 0 :(得分:1)
问题在于列class
的列factor
被强制为其整数存储模式值。将列转换为character
,它应该可以工作
data$x <- ifelse(grepl("^CUFF",data$genes),
as.character(data$xloc), as.character(data$genes))