偶数行的行划分
Row division for even number rows
我正在尝试将第一行与第二行、第三行与第四行分开,第五行,第六行 以及相当大的数据table。有什么方法可以不用太多计算就可以做到吗?
输入
Name Month Income
John Jan 10000
John_County Jan 20000
Tanya Jan 20000
Tanya_County Jan 40000
输出
Name Month Per_Income
John Jan 50%
Tanya Jan 50%
您可以使用 'look ahead' 合并,通过单个观察偏移合并的数据集:
data want ;
merge have
have (firstobs=2 rename=(Income=Next_Income)) ;
if mod(_n_,2) = 1 then do ;
/* 1st, 3rd, 5th, etc. row */
Per_Income = Income / Next_Income ;
output ;
end ;
run ;
在 R 中,您可以使用偶数和奇数索引:
odds <- c(TRUE, FALSE)
II[odds,"Per_Income"] <- paste0(II[odds,3] / II[!odds,3] * 100,"%")
II[odds,]
# Name Month Income Per_Income
# 1 John Jan 10000 50%
# 3 Tanya Jan 20000 50%
我正在尝试将第一行与第二行、第三行与第四行分开,第五行,第六行 以及相当大的数据table。有什么方法可以不用太多计算就可以做到吗?
输入
Name Month Income
John Jan 10000
John_County Jan 20000
Tanya Jan 20000
Tanya_County Jan 40000
输出
Name Month Per_Income
John Jan 50%
Tanya Jan 50%
您可以使用 'look ahead' 合并,通过单个观察偏移合并的数据集:
data want ; merge have have (firstobs=2 rename=(Income=Next_Income)) ; if mod(_n_,2) = 1 then do ; /* 1st, 3rd, 5th, etc. row */ Per_Income = Income / Next_Income ; output ; end ; run ;
在 R 中,您可以使用偶数和奇数索引:
odds <- c(TRUE, FALSE)
II[odds,"Per_Income"] <- paste0(II[odds,3] / II[!odds,3] * 100,"%")
II[odds,]
# Name Month Income Per_Income
# 1 John Jan 10000 50%
# 3 Tanya Jan 20000 50%