如何分离存储在 R 中一列中的两个变量的值?

问题描述 投票:0回答:1

我的数据如下所示:

A 栏 B 栏 C 栏
1 2 3 不适用
4 5 6
7 8 9
10 11 12

我正在尝试在 R 中清理它。每一列必须包含一个数字。在第 1 行的情况下,数字 3 属于 C 列,但存储在 B 列中。同样,我有 B 列,即最后一行,其中 12 属于 C 列,但存储在 B 中。

我该如何在 R 中清理这个?

我是 R 新手,以前没有遇到过这样的问题。

r tidyverse tidy
1个回答
0
投票

它看起来导入不正确,但如果您没有能力修复它那里(首选),这里有一个修复该框架的技巧:

quux[] <- t(apply(quux, 1, \(z) setdiff(strsplit(paste(setdiff(z, c(NA, "")), collapse = " "), " ")[[1]], ""))) |>
  as.data.frame() |>
  lapply(type.convert, as.is = TRUE)
quux
#   Column A Column B Column C
# 1        1        2        3
# 2        4        5        6
# 3        7        8        9
# 4       10       11       12
str(quux)
# 'data.frame': 4 obs. of  3 variables:
#  $ Column A: int  1 4 7 10
#  $ Column B: int  2 5 8 11
#  $ Column C: int  3 6 9 12

数据

quux <- structure(list("Column A" = c(1L, 4L, 7L, 10L), "Column B" = c("2 3", "5", "8", "11 12"), "Column C" = c(NA, 6L, 9L, NA)), class = "data.frame", row.names = c(NA, -4L))
© www.soinside.com 2019 - 2024. All rights reserved.