【问题标题】:Assign the half of the vector in R在R中分配向量的一半
【发布时间】:2020-04-07 13:13:41
【问题描述】:

我想分配向量的一半 1 和其余的 o

df <- c("1","a","b","2")
[1] "1" "a" "b" "2"

预期结果

 [1] "1" "1" "0" "0"

提前多谢

【问题讨论】:

  • 我很好奇你到底想做什么。别人提供的使用rep的解决方案很好,但是和你的原始向量无关,他们根据原始向量分配1和0有什么规则吗?
  • 您想将哪一半分配(更改?)为 0?只是随意?还是向量中的某些项目?
  • 如果您在问题中使用此类包,请仅使用dplyr,tidyr 标签。
  • 我看到您已经接受了其中一个答案。所以你想要的真的与你的原始向量c("1","a","b","2")无关。您提出问题的方式具有误导性。下次请用正确的描述提出相关问题。

标签: r data-manipulation


【解决方案1】:

使用rep

rep(1:0, each = length(df)/2, length.out = length(df))
#[1] 1 1 0 0

如果 1 和 0 的分配方式无关紧要,您可以只指定 length.out

rep(1:0, length.out = length(df))
#[1] 1 0 1 0

【讨论】:

    【解决方案2】:

    另外,稍微不同的方式是:

    '<-'(df, +(seq_along(df) <= length(df) %/% 2))
    #df
    #[1] 1 1 0 0
    

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 2016-03-07
      相关资源
      最近更新 更多