【问题标题】:Is there any way in R we can find "text" in one column put the same value in another column in R data-frame? [duplicate]在 R 中有什么方法可以在一列中找到“文本”,将相同的值放在 R 数据框的另一列中? [复制]
【发布时间】:2019-05-14 16:20:44
【问题描述】:

假设我有数据帧 x。它有“A”和“B”列。

A        B
a b      a b
c d      c d
e f      e f
a b      a b
a b
a b      a b
a b      a b
a b
a b
a b
a b

我想展示这样的东西。

A        B
a b      a b
c d      c d
e f      e f
a b      a b
a b      a b
a b      a b
a b      a b
a b      a b
a b      a b 
a b      a b
a b      a b

基本上我想在 x.A 上过滤值“a b”,这样我就可以在 x.B 上得到完全相同的值。对于 B 列,我只有“a b”和“”值。我想在B列中将“”转换为“a b”。

我曾尝试使用 gsub、sub、filter 和正则表达式,但在清理数据后,如果我在 excel 中导出这个 .csv 文件,我没有得到我想要的正确输出。

【问题讨论】:

  • 查看您尝试过的内容会很有帮助,即使它没有奏效。您是否只是想在 A 和 B 中的值相同时进行子集化?我也不确定导出到 csv 与这个问题有什么关系
  • 你不是在做df$B = df$A吗??
  • 不,因为 B 和 A 也有一些不同的值。
  • 当 A 的值为“a b”时,我想填充 B 中的空白值。并想填写“a b”。它是一个文本。
  • @camille 当 A 的值为“ab”时,我想用“a b”填充 B 的值。

标签: r


【解决方案1】:

您似乎想检查B 列是否有任何值。如果是,保留这个,如果不是,把A列的值放在那里,你可以使用ifelse:

df$B <- ifelse(df$B == "", df$A, df$B)

【讨论】:

  • 我想检查 A 是否有值“a b”。那么B的值应该只是“a b”。但在某些值中有空格和一些“a b”。我只想要“a b”而不是空白。
  • 在这种情况下应该是:df$B
  • 它不工作。
猜你喜欢
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-03
相关资源
最近更新 更多