Назначьте половину вектора в R - PullRequest
2 голосов
/ 07 апреля 2020

Я хочу присвоить половину вектора 1, а остальные o

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

Ожидаемый результат

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

большое спасибо заранее

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Также, немного по-другому, будет:

'<-'(df, +(seq_along(df) <= length(df) %/% 2))
#df
#[1] 1 1 0 0
1 голос
/ 07 апреля 2020

Использование 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
...