Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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中的新列从另一列填充,并以另外两列为条件_R - Fatal编程技术网

使R中的新列从另一列填充,并以另外两列为条件

使R中的新列从另一列填充,并以另外两列为条件,r,R,我需要创建一个新列(col.4),其中填充了现有列(col.2)中的值,这些值作为原始相邻列(col.1)的条件,并在新的(较长的)相邻列(col.3)中填充相同的值。如何做到这一点?数据如下所示: col.1 col.2 col.3 col.4 1 A 1 A 2b 2b 3 C 2 B 4d3c --1A --4d --3 C --4d一个选项是使用'col.3'作为索引(假设它是一个数字列) df1$col.4谢谢。但实际上,我在col.1/2中有432行,在col.3/4中有864行。所

我需要创建一个新列(col.4),其中填充了现有列(col.2)中的值,这些值作为原始相邻列(col.1)的条件,并在新的(较长的)相邻列(col.3)中填充相同的值。如何做到这一点?数据如下所示:

col.1 col.2 col.3 col.4
1 A 1 A
2b 2b
3 C 2 B
4d3c
--1A
--4d
--3 C

--4d

一个选项是使用'col.3'作为索引(假设它是一个数字列)


df1$col.4谢谢。但实际上,我在col.1/2中有432行,在col.3/4中有864行。所以像您在这里生成的手动索引对我的应用程序不起作用。@JKO。我没有做任何手动索引。它是您示例中“col.3”中提供的iindex。如果索引是按顺序排列的,则值应为。如果根据该索引进行替换,则无论有多少个索引都应该有效。排
df1$col.4 <- with(df1, col.2[col.3])
df1$col.4
#[1] "A" "B" "B" "C" "A" "D" "C" "D"
df1 <- structure(list(col.1 = c("1", "2", "3", "4", "-", "-", "-", "-"
), col.2 = c("A", "B", "C", "D", "-", "-", "-", "-"), col.3 = c(1L, 
2L, 2L, 3L, 1L, 4L, 3L, 4L), col.4 = c("A", "B", "B", "C", "A", 
"D", "C", "D")), class = "data.frame", row.names = c(NA, -8L))