将字符向量v扩展为8位,如下所示:交换v [3]和v [4]

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

我有一个向量

s <- "111000"
v <- as.character(unlist(strsplit(s,"")))

我需要取向量v,变成一个8位长的字符串,并交换第3个和第4个变量。

例如:输入向量:

1 2 3 4 5 6 

输出向量:

1 2 4 3 4 3 5 6

编辑,所以很多人误解了输入/输出。数字仅表示变量的位置以及切换位置。

关于问题中的实际向量:“ 111000”。

Input Value: "1" "1" "1" "0" "0" "0"
Output Value: "1" "1" "0" "1" "0" "1" "0" "0"

编辑:对不起,这个问题是我这么说的。但基本上我正在尝试进行块扩展。我正在尝试创建一个函数来接受6位向量,并返回8位值,这些值是上面的输出。我添加了一张照片,说明发生了什么:

enter image description here

r des feistel-cipher
1个回答
0
投票

天真的,x[c(1, 2, 4, 3, 4, 3, 5, 6)]是您想要的。

作为功能,

# works on first 6 variables
foo = function(x) x[c(1, 2, 4, 3, 4, 3, 5, 6)]
foo(1:6)
# [1] 1 2 4 3 4 3 5 6

foo(1:10) # only the first 6
# [1] 1 2 4 3 4 3 5 6

s <- "111000"
v <- as.character(unlist(strsplit(s,"")))
foo(v)
# [1] "1" "1" "0" "1" "0" "1" "0" "0"
© www.soinside.com 2019 - 2024. All rights reserved.