I am trying to write a loop to create a variable to later use group_by on for further calculation, which indicates whether a particular type (group variable) happened between two dates (date variable). The factor I want to create is called leaderFactor.
The code throws up an error: "Error in if (test1$party[i] == "PSOE" & test1$elecTypeDate[i] > as_date("1977-01-01") & : missing value where TRUE/FALSE needed", but there are no missing values contained in the two relevant variables. Please help! Thank you!
(Sidenote: This is an example of a more complex scenario with more than two types of events, so I will use several else if statements between the if and the else in the code below.)
Data:
test1<- structure(list(party = c("PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP", "PP",
"PP", "PP", "PP", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE", "PSOE",
"PSOE", "PSOE", "PSOE", "PSOE"), elecTypeDate = structure(c(3346,
3346, 3346, 3712, 4291, 4503, 4656, 4656, 4656, 4656, 4656, 4656,
4656, 4656, 4656, 4656, 4656, 4656, 4656, 4868, 4868, 4868, 4868,
4868, 4868, 4868, 4868, 4868, 4868, 4991, 4991, 4991, 5144, 5204,
5783, 5995, 6148, 6209, 6360, 6360, 6360, 6360, 6360, 6360, 6360,
6360, 6360, 6360, 6360, 6360, 6360, 6695, 6940, 7274, 7456, 7578,
7790, 7790, 7790, 7790, 7790, 7790, 7790, 7790, 7790, 7790, 7790,
7790, 7821, 8095, 8674, 8766, 8917, 9039, 9251, 9251, 9251, 9251,
9251, 9251, 9251, 9251, 9251, 9282, 9282, 9282, 9435, 9556, 10135,
10500, 10592, 10743, 10743, 10743, 10743, 10743, 10743, 10743,
10743, 10743, 10743, 10743, 10835, 10865, 11017, 11443, 11596,
12173, 12173, 12173, 12173, 12173, 12173, 12173, 12173, 12173,
12204, 12204, 12296, 12326, 12357, 12418, 12478, 12874, 12935,
13453, 13634, 13634, 13634, 13634, 13634, 13634, 13634, 13634,
13634, 13634, 13665, 13695, 13939, 14245, 14245, 14304, 14304,
14914, 15095, 15095, 15095, 15095, 15095, 15095, 15095, 15095,
15095, 15095, 15095, 15095, 15126, 15400, 15400, 15614, 15614,
15645, 16102, 16495, 16556, 16556, 16556, 16556, 16556, 16556,
16556, 16556, 16556, 16556, 16556, 16556, 16587, 16679, 17045,
17045, 17501, 17622, 17928, 17987, 18017, 18017, 18017, 18017,
18017, 18017, 18017, 18017, 18017, 18017, 18017, 18017, 3346,
3346, 3346, 3346, 3377, 3712, 3712, 4291, 4503, 4656, 4656, 4656,
4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4868,
4868, 4868, 4868, 4868, 4868, 4868, 4868, 4868, 4868, 4991, 4991,
4991, 5144, 5204, 5783, 5995, 6148, 6209, 6360, 6360, 6360, 6360,
6360, 6360, 6360, 6360, 6360, 6360, 6360, 6360, 6360, 6695, 6940,
7274, 7456, 7578, 7790, 7790, 7790, 7790, 7790, 7790, 7790, 7790,
7790, 7790, 7790, 7790, 7821, 8095, 8674, 8766, 8917, 9039, 9251,
9251, 9251, 9251, 9251, 9251, 9251, 9251, 9251, 9251, 9282, 9282,
9282, 9435, 9556, 10135, 10500, 10592, 10743, 10743, 10743, 10743,
10743, 10743, 10743, 10743, 10743, 10743, 10743, 10743, 10835,
10865, 11017, 11443, 11596, 12173, 12173, 12173, 12173, 12173,
12173, 12173, 12173, 12173, 12173, 12204, 12204, 12296, 12326,
12357, 12418, 12478, 12874, 12935, 13453, 13634, 13634, 13634,
13634, 13634, 13634, 13634, 13634, 13634, 13634, 13634, 13665,
13695, 13939, 14245, 14304, 14304, 14914, 15095, 15095, 15095,
15095, 15095, 15095, 15095, 15095, 15095, 15095, 15095, 15095,
15126, 15400, 15400, 15614, 15614, 15645, 16102, 16495, 16556,
16556, 16556, 16556, 16556, 16556, 16556, 16556, 16556, 16556,
16556, 16556, 16587, 16679, 17045, 17045, 17501, 17622, 17928,
17987, 18017, 18017, 18017, 18017, 18017, 18017, 18017, 18017,
18017, 18017, 18017, 18017), class = "Date")), row.names = c(NA,
-398L), class = c("tbl_df", "tbl", "data.frame"))
Code:
test1$leaderFactor <- "none"
for(i in test1$leaderFactor){
if(test1$party[i]=="PSOE" &
test1$elecTypeDate[i] > as_date("1977-01-01") &
test1$elecTypeDate[i] < as_date("1997-06-30")){
test1$leaderFactor[i] = "Gonzales"
} else {
test1$leaderFactor[i] = "Rest"}}
sum(is.na(test1$elecTypeDate))
sum(is.na(test1$party))
Aucun commentaire:
Enregistrer un commentaire