【发布时间】:2020-10-20 10:32:19
【问题描述】:
我有一个数据集,我想为其创建一个名称为 small、medium 和 large 的新列,这些将取决于年份 2014 的值。其中1:5 = small 和6:9 = medium 而10:14 = large。值将是 yes 或 no,具体取决于年份的值。
这就是我的数据集的样子:
A tibble: 330 x 4
LOC_ID season `2014` `2015`
<chr> <chr> <int> <int>
1 LOC1002793 Summer 12 NA
2 LOC1002793 Winter 6 NA
3 LOC1004001 Winter NA 1
4 LOC1004488 Winter 8 NA
5 LOC1012349 Summer 12 12
6 LOC1012349 Winter 11 12
7 LOC1019836 Summer 14 10
8 LOC1019836 Winter 12 12
9 LOC1022032 Winter NA 1
10 LOC1034172 Summer 13 11
# ... with 320 more rows
计数分为 2014 年和 2015 年,这些计数表示一年中,在该季节的几周内,locality id 进行观察的次数(在这种情况下,观察是鸟类)。
我想要这样的东西(我会将 2014/2015 数据帧分成两个数据帧,所以这样做一年我可以复制另一个的代码):
A tibble: 330 x 4
LOC_ID season `2014` `2015` small medium large
<chr> <chr> <int> <int>
1 LOC1002793 Summer 12 NA no no yes
2 LOC1002793 Winter 6 NA no yes no
3 LOC1004001 Winter NA 1
4 LOC1004488 Winter 8 NA no yes no
5 LOC1012349 Summer 12 12 no no yes
6 LOC1012349 Winter 11 12 . . .
7 LOC1019836 Summer 14 10 . . .
8 LOC1019836 Winter 12 12
9 LOC1022032 Winter NA 1
10 LOC1034172 Summer 13 11
# ... with 320 more rows
这是我尝试过的:
#replicate the years and name those replicates test1 = 2014 and test2 = 2015
A tibble: 330 x 6
LOC_ID season test1 `2014` test2 `2015`
<chr> <chr> <int> <int> <int> <int>
1 LOC1002793 Summer 12 12 NA NA
2 LOC1002793 Winter 6 6 NA NA
3 LOC1004001 Winter NA NA 1 1
4 LOC1004488 Winter 8 8 NA NA
5 LOC1012349 Summer 12 12 12 12
6 LOC1012349 Winter 11 11 12 12
7 LOC1019836 Summer 14 14 10 10
8 LOC1019836 Winter 12 12 12 12
9 LOC1022032 Winter NA NA 1 1
10 LOC1034172 Summer 13 13 11 11
# ... with 320 more rows
ld <- d %>% mutate(test1 = recode(test1, `1:5` = 'low', `6:9` = 'medium', `10:14` = 'high')) %>% pivot_wider(names_from = test1, values_from = '2014')
可重现的代码:
structure(list(LOC_ID = c("LOC1002793", "LOC1002793", "LOC1004001",
"LOC1004488", "LOC1012349", "LOC1012349", "LOC1019836", "LOC1019836",
"LOC1022032", "LOC1034172", "LOC1034172", "LOC1039789", "LOC1040038",
"LOC1040038", "LOC1047222314194", "LOC1047222314194", "LOC1048553080056",
"LOC1049318", "LOC1049318", "LOC1049970899816", "LOC1049970899816",
"LOC1066628", "LOC1066628", "LOC1071566", "LOC1071566", "LOC1071569",
"LOC1071569", "LOC1073191", "LOC1073191", "LOC1073423", "LOC1073423",
"LOC1079978", "LOC1079978", "LOC1083442", "LOC1083442", "LOC1086293",
"LOC1086293", "LOC1087213", "LOC1087213", "LOC1088795", "LOC1088795",
"LOC1122438", "LOC1122438", "LOC1139319877260", "LOC1139319877260",
"LOC1153084541859", "LOC1153084541859", "LOC1155749", "LOC1163128",
"LOC1163128", "LOC1234081", "LOC1234081", "LOC1289919", "LOC1289919",
"LOC1294966340210", "LOC1300602115", "LOC1300602115", "LOC1300602122",
"LOC1300602122", "LOC1300602135", "LOC1300602135", "LOC1300602161",
"LOC1300602161", "LOC1300602184", "LOC1300602184", "LOC1300602196",
"LOC1300602196", "LOC1300602243", "LOC1300602243", "LOC1300602306",
"LOC1300602306", "LOC1300604079", "LOC1300604079", "LOC1300604135",
"LOC1300604135", "LOC1300604635", "LOC1300604635", "LOC1300604699",
"LOC1300604699", "LOC1300604713"), season = c("Summer", "Winter",
"Winter", "Winter", "Summer", "Winter", "Summer", "Winter", "Winter",
"Summer", "Winter", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer", "Summer", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer", "Winter", "Summer", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer", "Winter", "Summer", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer", "Winter", "Summer", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer"), `2015` = c(NA, NA, 1L, NA, 12L, 12L, 10L, 12L, 1L,
11L, 12L, NA, 2L, 5L, 11L, 9L, NA, 5L, 7L, 13L, 12L, 9L, 11L,
9L, 11L, 11L, 7L, 7L, 12L, 8L, 12L, 12L, 7L, 13L, 12L, 12L, 12L,
4L, 8L, 7L, 10L, 7L, 4L, 12L, 12L, 2L, 5L, NA, NA, 9L, 12L, 7L,
11L, 4L, 8L, 11L, 12L, 13L, 12L, 10L, 12L, 12L, 12L, 11L, 4L,
13L, 12L, 12L, 12L, 10L, 10L, 11L, 10L, 12L, 11L, 9L, 11L, 9L,
10L, 13L)), row.names = c(NA, -80L), class = c("tbl_df", "tbl",
"data.frame"))
【问题讨论】:
-
您可以运行
dput(head(data, 10))并将输出粘贴到问题中吗?这样可以更轻松地将您的数据复制到 R 中,以便我们与您一起为您提供最佳答案。 -
哎呀我本来打算这样做的,现在看看
标签: r