Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.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:根据其他列的值,从特定列中减去1_R_Dataframe - Fatal编程技术网

R:根据其他列的值,从特定列中减去1

R:根据其他列的值,从特定列中减去1,r,dataframe,R,Dataframe,我正在尝试对某一列执行一个基本操作(比如说,减法1),由另一列(比如第一列)的值引用。例如:对于给定行,第一列中的值等于5。然后我想从同一行第5列中减去1 数据看起来像 tmp <- data.frame(replicate(5,sample(2:5,5,rep=TRUE))) tmp因此元素的列索引位于行的第一列: for (i in 1:nrow(tmp)) tmp[i, tmp[i,1]] <- tmp[i, tmp[i,1]] - 1  for(i in 1:nrow(t

我正在尝试对某一列执行一个基本操作(比如说,减法1),由另一列(比如第一列)的值引用。例如:对于给定行,第一列中的值等于5。然后我想从同一行第5列中减去1

数据看起来像

tmp <- data.frame(replicate(5,sample(2:5,5,rep=TRUE)))

tmp因此元素的列索引位于行的第一列:

for (i in 1:nrow(tmp)) tmp[i, tmp[i,1]] <- tmp[i, tmp[i,1]] - 1 

for(i in 1:nrow(tmp))tmp[i,tmp[i,1]]!你完全正确@jogo。快速提问:有没有一种简单的方法可以以同样的方式引用列名,而不是索引。例如,列名“S5”?最简单的方法是通过
名称(tmp)
,然后匹配列的名称并使用名称索引,或者您能想出一种更简单的方法吗?
tmp <- data.frame(cInd=c("A", "B", "C"), A=1:3, B=11:13, C=21:23,
          stringsAsFactors = FALSE)
for (i in 1:nrow(tmp)) tmp[i, tmp[i,1]] <- tmp[i, tmp[i,1]] - 1