我需要通过将值除以唯一列数(YEAR DIV POL ST CTY CR PL YID LID DATE)
来获取Area和Prm列中的值。
R中是否有功能来实现这一目标?
提前致谢。
Table:
Tag YEAR DIV POL ST CTY CR PL YID LID DATE Area PRm SEP1 SEP2
S25 2005 7 3068 15 205 11 44 4 2 9042004 799 4504 326.9 296.6
S1 2005 7 4077 15 205 11 90 4 2 9202004 300 3000 316.1 309.2
S16 2005 7 4077 15 205 11 90 4 2 9202004 300 3000 391.2 201.5
S2 2005 7 4077 15 205 11 90 4 2 9202004 300 3000 271.2 311.5
S28 2005 7 3180 15 205 11 44 5 6 9202004 651 1747 251.2 382.5
Output:
Tag YEAR DIV POL ST CTY CR PL YID LID DATE Area PRm SEP1 SEP2
S25 2005 7 3068 15 205 11 44 4 2 9042004 799 4504 326.9 296.6
S1 2005 7 4077 15 205 11 90 4 2 9202004 100 1000 316.1 309.2
S16 2005 7 4077 15 205 11 90 4 2 9202004 100 1000 391.2 201.5
S2 2005 7 4077 15 205 11 90 4 2 9202004 100 1000 271.2 311.5
S28 2005 7 3180 15 205 11 44 5 6 9202004 651 1747 251.2 382.5
表和输出的差异在Area和PRm列的2,3和4行中。
Area和Prm列(300和3000)中的值除以3(因为YEAR DIV POL ST CTY CR PL YID LID DATE列在行2,3和4中相同)。因此,Area和PRm列中的值除以3(区域列中的300/3 = 100,输出表中2,3和4行的PRm列中的3000/3 = 1000。
S1 2005 7 4077 15 205 11 90 4 2 9202004 100 1000 316.1 309.2
S16 2005 7 4077 15 205 11 90 4 2 9202004 100 1000 391.2 201.5
S2 2005 7 4077 15 205 11 90 4 2 9202004 100 1000 271.2 311.5
答案 0 :(得分:0)
dplyr
:
df1 %>% add_count(YEAR,DIV,POL,ST,CTY,CR,PL,YID,LID,DATE) %>%
mutate(Area = Area /n) %>%
select(-n)
<强>输出强>
# # A tibble: 5 x 15
# Tag YEAR DIV POL ST CTY CR PL YID LID DATE Area PRm SEP1 SEP2
# <chr> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <dbl> <int> <dbl> <dbl>
# 1 S25 2005 7 3068 15 205 11 44 4 2 9042004 799 4504 326.9 296.6
# 2 S1 2005 7 4077 15 205 11 90 4 2 9202004 100 3000 316.1 309.2
# 3 S16 2005 7 4077 15 205 11 90 4 2 9202004 100 3000 391.2 201.5
# 4 S2 2005 7 4077 15 205 11 90 4 2 9202004 100 3000 271.2 311.5
# 5 S28 2005 7 3180 15 205 11 44 5 6 9202004 651 1747 251.2 382.5
数据强>
df1 <- read.table(text="Tag YEAR DIV POL ST CTY CR PL YID LID DATE Area PRm SEP1 SEP2
S25 2005 7 3068 15 205 11 44 4 2 9042004 799 4504 326.9 296.6
S1 2005 7 4077 15 205 11 90 4 2 9202004 300 3000 316.1 309.2
S16 2005 7 4077 15 205 11 90 4 2 9202004 300 3000 391.2 201.5
S2 2005 7 4077 15 205 11 90 4 2 9202004 300 3000 271.2 311.5
S28 2005 7 3180 15 205 11 44 5 6 9202004 651 1747 251.2 382.5",header=T,stringsAsFactors=F)