Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:展开序列,使序列中任何成员的值成为其位置,未填充的位置编码为0或NA_R - Fatal编程技术网

R:展开序列,使序列中任何成员的值成为其位置,未填充的位置编码为0或NA

R:展开序列,使序列中任何成员的值成为其位置,未填充的位置编码为0或NA,r,R,问题是: 我有一个数据集,其中评级者列出了他们认为是噪声而不是信号的成分。因此,如果总共有八个成分,他们可能会生成一个类似“3,5,6”的列表,表明他们认为第三、第五和第六个成分是噪声,应该排除在进一步分析之外 为了便于我对参与者间可靠性的分析,我需要能够将不同评分者创建的向量排列起来,看看哪里有一致性;所以,虽然“3,5,6”和“3,6”是不可比较的,但像“0,0,3,0,5,6,0,0”和“0,0,3,0,0,6,0,0”这样的东西是可以比较的,特别是当我将所有非零值转换为1时 我想知道是否

问题是:

我有一个数据集,其中评级者列出了他们认为是噪声而不是信号的成分。因此,如果总共有八个成分,他们可能会生成一个类似“3,5,6”的列表,表明他们认为第三、第五和第六个成分是噪声,应该排除在进一步分析之外

为了便于我对参与者间可靠性的分析,我需要能够将不同评分者创建的向量排列起来,看看哪里有一致性;所以,虽然“3,5,6”和“3,6”是不可比较的,但像“0,0,3,0,5,6,0,0”和“0,0,3,0,0,6,0,0”这样的东西是可以比较的,特别是当我将所有非零值转换为1时

我想知道是否有办法将序列从指定的最小值扩展到指定的最大值,用“0”或“NA”替换缺少的值,这样:

xmin <- 1
xmax <- 8
x <- c(3,5,6)


expand.x您只需创建一个
NA
s的向量,然后使用
[]
括号覆盖您感兴趣的值

> xmin = 1
> xmax = 8
> x = c(3,5,6)

> expand.x = xmin:xmax * NA
> expand.x[x] = x
> expand.x
[1] NA NA  3 NA  5  6 NA NA
1)试试这个:

> xmin:xmax %in% x
[1] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE
2)或者这个

> x[ match(xmin:xmax, x) ]
[1] NA NA  3 NA  5  6 NA NA
> replace(xmin:xmax, -x, 0)
[1] 0 0 3 0 5 6 0 0
3)还是这个

> x[ match(xmin:xmax, x) ]
[1] NA NA  3 NA  5  6 NA NA
> replace(xmin:xmax, -x, 0)
[1] 0 0 3 0 5 6 0 0
如果我们将
0
替换为
NA
,则此解决方案给出与(2)相同的结果


编辑:添加第二种解决方案。

您也可以使用
0
而不是
NA
。当他第一次问他使用的问题时,如果
xmin
不是1,那么它可能不起作用,所以我试图与该格式保持一致。但是,是的,这可以很容易地成为
0
1
TRUE
FALSE
,等等。目前实际数据的形式是什么。它是一个
列表
中的
向量
s,在你的工作场所中是独立的向量吗?
数据框的列中的值
> replace(xmin:xmax, -x, 0)
[1] 0 0 3 0 5 6 0 0