在R中指定向量的一半
我想把向量的一半赋值为1,其余的赋值为o在R中指定向量的一半,r,data-manipulation,R,Data Manipulation,我想把向量的一半赋值为1,其余的赋值为o df <- c("1","a","b","2") [1] "1" "a" "b" "2" 使用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 另外,稍微不同的方式是: '<-'(df, +
df <- c("1","a","b","2")
[1] "1" "a" "b" "2"
使用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
另外,稍微不同的方式是:
'<-'(df, +(seq_along(df) <= length(df) %/% 2))
#df
#[1] 1 1 0 0
“我很好奇你到底想做什么。使用他人提供的rep
解决方案很好,但它与您的原始向量无关,他们是否有基于原始向量分配1和0的规则?您希望将哪一半分配(更改?)到0?只是随机的?或者向量中的某些项目?如果您在问题中使用此类软件包,请仅使用dplyr
,tidyr
标记。我看到您已经接受了其中一个答案。所以你真正想要的与你的原始向量无关c(“1”,“a”,“b”,“2”)
。你问问题的方式有误导性。下次,请提出相关的问题,并进行适当的描述。
'<-'(df, +(seq_along(df) <= length(df) %/% 2))
#df
#[1] 1 1 0 0