Loc Var Y1 Y2
1. UF M 81.0 80.7
2. UF S 105.4 82.3
3. UF V 119.7 80.4
我需要一种快速的方法,而无需从头开始重建表格。
提前致谢!
R程序
它有大约30行,我只是因为时间的推移而省略了它们。
我希望减去所有行的最后两列(Y1,Y2)(1,2,3,... 30)
答案 0 :(得分:0)
不确定您想要什么,但如果您只想从第2行和第3行的Y1
和Y2
列中减去两个,那么您可以使用:
df[2:3, c("Y1", "Y2")] <- df[2:3, c("Y1", "Y2")] - 2
更一般地说:
nr <- nrow(df)
nc <- ncol(df)
df[(nr-1):nr, (nc-1):nc] <- df[(nr-1):nr, (nc-1):nc] - 2
数据:强>
df <- data.frame(Loc = c("UF", "UF", "UF"), # I'm calling your data frame 'df'
Var = c("M", "S", "V"),
Y1 = c(81.0, 105.4, 119.7),
Y2 = c(80.7, 82.3, 80.4))
答案 1 :(得分:0)
鉴于Tim的数据:
df <- data.frame(Loc = c("UF", "UF", "UF"), # I'm calling your data frame 'df'
Var = c("M", "S", "V"),
Y1 = c(81.0, 105.4, 119.7),
Y2 = c(80.7, 82.3, 80.4))
您可以使用dplyr函数获得所需的结果:
library(dplyr) # Load the library
df2<- df %>%
mutate(Y1=Y1-2, Y2=Y2-2)
你会得到这个:
df2
Loc Var Y1 Y2
1 UF M 79.0 78.7
2 UF S 103.4 80.3
3 UF V 117.7 78.4
对于Y1和Y2的任意数量的行,这都可以正常工作