保留第一行作为参考的Dataframe中的计算

我的第一行是添加下列行的参考值(对于N列)。保留第一行作为参考的Dataframe中的计算

数据

A B C D 

3 5 1 2

1 4 5 3

2 2 2 4

3 1 3 1

4 3 1 2

计算如下:

  • 3,是被添加的参考值,它是3应被添加到1,2,3和4中,类似地5是参考值 - 被加到4,2,1,3,然后1被参考值加到5,2,3,1等等直到n列。

    1 + 3 4 + 5 5 + 1 3 + 2 

    2 + 3 2 + 5 2 + 1 4 + 2

    3 + 3 1 + 5 3 + 1 1 + 2

    4 + 3 3 + 5 1 + 1 2 + 2

预期输出:

A B C D 

4 9 6 5

5 7 3 6

6 6 4 3

7 8 2 4

请帮助。谢谢。

回答:

也许只是这样的:

c(mydf[1, ]) + mydf[-1, ] 

## A B C D

## 2 4 9 6 5

## 3 5 7 3 6

## 4 6 6 4 3

## 5 7 8 2 4


开始data.frame

mydf <- structure(list(A = c(3L, 1L, 2L, 3L, 4L), B = c(5L, 4L, 2L, 1L, 

3L), C = c(1L, 5L, 2L, 3L, 1L), D = c(2L, 3L, 4L, 1L, 2L)), .Names = c("A",

"B", "C", "D"), row.names = c(NA, 5L), class = "data.frame")

回答:

我们可以做

(df1[1,][col(df1)] + df1)[-1,] 

# A B C D

#2 4 9 6 5

#3 5 7 3 6

#4 6 6 4 3

#5 7 8 2 4

回答:

如果你想在你的初始数据帧来代替值与...一起EW值,你可以做到以下几点:

df <- data.frame(c(3,1,2,3,4), c(5,4,2,1,3), c(1,5,2,3,1), c(2,3,4,1,2)) 

names(df) <- c("A", "B", "C", "D")

for (i in 2:nrow(df)) {

for (j in 1:ncol(df)) {

df[i,j] <- df[1,j] + df[i,j]

}

}

这也许可以矢量化运行,如果你有一个非常大的数据帧这将是有益的速度更快,但如果你需要一个快速和肮脏的解决方案,将工作。

输出:

A B C D 

1 3 5 1 2

2 4 9 6 5

3 5 7 3 6

4 6 6 4 3

5 7 8 2 4

希望这是有帮助的!

以上是 保留第一行作为参考的Dataframe中的计算 的全部内容, 来源链接: utcz.com/qa/266620.html

回到顶部