我试着选取3列,并将它们组合成2列.对于每一行,三列中只有两列有数据(另一列是NA).

我的第一个 idea 是使用coalesce,但我无法使其适用于我的 case .

tibble(
  col1 = c(NA, 1, 0),
  col2 = c(1, NA, 1),
  col3 = c(0, 1, NA)
)

# A tibble: 3 × 3
  coder1 coder2 coder3
   <dbl>  <dbl>  <dbl>
1     NA      1      0
2      1     NA      1
3      0      1     NA

我想要的输出如下:

tibble(
  col1 = c(NA, 1, 0),
  col2 = c(1, NA, 1),
  col3 = c(0, 1, NA)
  out1 = c(1, 1, 0),
  out2 = c(0, 1, 1)
)

# A tibble: 3 × 5
  coder1 coder2 coder3 test1 test2
   <dbl>  <dbl>  <dbl> <dbl> <dbl>
1     NA      1      0     1     0
2      1     NA      1     1     1
3      0      1     NA     0     1

推荐答案

一种快捷方式:

df %>%
  rowwise() %>%
  mutate(test=list(na.omit(c_across(everything()))))%>%
  unnest_wider(test, names_sep = '')

  col1  col2  col3 test1 test2
  <dbl> <dbl> <dbl> <dbl> <dbl>
1    NA     1     0     1     0
2     1    NA     1     1     1
3     0     1    NA     0     1

在基数R中:

cbind(df, test=t(unstack(na.omit(stack(data.frame(t(df)))))))
   col1 col2 col3 test.1 test.2
X1   NA    1    0      1      0
X2    1   NA    1      1      1
X3    0    1   NA      0      1

R相关问答推荐

如何将y轴上的线定位得彼此更近

提取rame中对应r中某个变量的n个最小正值和n个最大负值的条目

以R为基数排列奇数个图

根据R中两个变量的两个条件删除带有dspirr的行

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

如何写一个R函数来旋转最后n分钟?

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

如何得到R中唯一的组合群?

在R中使用数据集名称

标识R中多个列中缺少的唯一值

如何在分组条形图中移动相关列?

提取一个列表中单个列的重复观察结果R

根据1个变量绘制 colored颜色 发散的 map ,由另一个变量绘制饱和度,ggplot2不工作

以NA为通配符的R中的FULL_JOIN以匹配其他数据中的任何值.Frame

将向量元素重新排序为R中的第二个

仅当后续值与特定值匹配时,才在列中回填Nas

创建新列,其中S列的值取决于该行S值是否与其他行冗余

将文本批注减少到gglot的y轴上的单个值

如何获取R chromote中的当前URL?

在REST API中使用参数R