Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R匹配同一data.frame中的两列_R - Fatal编程技术网

R匹配同一data.frame中的两列

R匹配同一data.frame中的两列,r,R,如何将同一数据帧中的两列合并为一列,一个简单的示例是: a <- data.frame(id = 1:3, v1 = c('a', NA, NA), v2 = c(NA, 'b', 'c')) a id v1 v2 1 a <NA> 2 <NA> b 3 <NA> c 不清楚你到底想要什么。如果v1和v2的值不同,会发生什么情况 此方法将首选v1 a <- data.frame(id = 1:4, v1 =

如何将同一数据帧中的两列合并为一列,一个简单的示例是:

a <- data.frame(id = 1:3, v1 = c('a', NA, NA), v2 = c(NA, 'b', 'c'))
a
  id  v1   v2
   1  a   <NA>
   2 <NA>  b
   3 <NA>  c

不清楚你到底想要什么。如果
v1
v2
的值不同,会发生什么情况

此方法将首选
v1

a <- data.frame(id = 1:4, v1 = c('a', NA, NA,'d'), v2 = c(NA, 'b', 'c','e'))

a <- as.data.table(a)
a[,v3 := v1]
a[is.na(v1), v3 := v2]
嗯,
ifelse()
也许吧

> a <- data.frame(id = 1:3, v1 = c('a', NA, NA), v2 = c(NA, 'b', 'c'),
                  stringsAsFactors=FALSE)
> a$v3 <- ifelse(is.na(a$v1), a$v2, a$v1)
> a
  id   v1   v2 v3
1  1    a <NA>  a
2  2 <NA>    b  b
3  3 <NA>    c  c
>a$v3 a
id v1 v2 v3
1 a
2乙
3C
a$v3 <- as.character(a$v1)
a[is.na(a$v1),"v3"] <- as.character(a[is.na(a$v1),"v2"])
> a <- data.frame(id = 1:3, v1 = c('a', NA, NA), v2 = c(NA, 'b', 'c'),
                  stringsAsFactors=FALSE)
> a$v3 <- ifelse(is.na(a$v1), a$v2, a$v1)
> a
  id   v1   v2 v3
1  1    a <NA>  a
2  2 <NA>    b  b
3  3 <NA>    c  c