0

我有一个矢量图

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 位值,其值是上面的输出。我添加了一张照片,说明正在发生的事情:

在此处输入图像描述

4

1 回答 1

1

根据你的图,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"
于 2020-03-25T18:40:36.767 回答