У меня есть набор данных (результаты опроса), который разделен на 38 регионов, и я хочу написать цикл для создания процентного графика ответов для каждого конкретного региона.
Итак, если я напишуследующий код (обозначающий «i» с «6», поскольку номер региона равен «6», где «psu» - переменная, отвечающая за номер региона), все работает нормально.
reg <- subset(rlmsq, psu == "6")
s <- c(sum(reg$employee == "1", na.rm = TRUE)*100/sum(reg$employee !="", na.rm = TRUE),
sum(reg$employee == "2", na.rm = TRUE)*(100/2)/sum(reg$employee !="", na.rm = TRUE),
sum(reg$employee_affect == "1", na.rm = TRUE)*100/sum(reg$employee_affect !="", na.rm = TRUE),
sum(reg$employee_affect == "2", na.rm = TRUE)*(100/2)/sum(reg$employee_affect !="", na.rm = TRUE),
sum(reg$employee_affect == "3", na.rm = TRUE)*(100/3)/sum(reg$employee_affect !="", na.rm = TRUE),
sum(reg$employee_affect == "7", na.rm = TRUE)*(100/7)/sum(reg$employee_affect !="", na.rm = TRUE),
sum(reg$employee_affect == "8", na.rm = TRUE)*(100/8)/sum(reg$employee_affect !="", na.rm = TRUE))
barplot(s,
main = "ANSW. #3_1 ",
xlab = "Answers subpoints",
ylab = "Percetage",
ylim = c(0, 100),
names.arg = c("Yes", "No",
"Not-at-all", "Slightly",
"Strongly", "DTA",
"Refusal"),
col = "blue", cex.names = 0.6)
Но как только я пытаюсьчтобы создать цикл и использовать «i» в качестве числа регионов (следующего), единственное, что я получаю, это пустой график, так как нет данных.
par(mar=c(2,2,2,2))
par(mfrow=c(5,8))
for (i in 1:38) {
reg <- subset(rlmsq, psu == "i")
s <- c(sum(reg$employee == "1", na.rm = TRUE)*100/sum(reg$employee !="", na.rm = TRUE),
sum(reg$employee == "2", na.rm = TRUE)*(100/2)/sum(reg$employee !="", na.rm = TRUE),
sum(reg$employee_affect == "1", na.rm = TRUE)*100/sum(reg$employee_affect !="", na.rm = TRUE),
sum(reg$employee_affect == "2", na.rm = TRUE)*(100/2)/sum(reg$employee_affect !="", na.rm = TRUE),
sum(reg$employee_affect == "3", na.rm = TRUE)*(100/3)/sum(reg$employee_affect !="", na.rm = TRUE),
sum(reg$employee_affect == "7", na.rm = TRUE)*(100/7)/sum(reg$employee_affect !="", na.rm = TRUE),
sum(reg$employee_affect == "8", na.rm = TRUE)*(100/8)/sum(reg$employee_affect !="", na.rm = TRUE))
barplot(s,
main = "ANSW. #3_1 ",
xlab = "Answers subpoints",
ylab = "Percetage",
ylim = c(0, 100),
names.arg = c("Yes", "No",
"Not-at-all", "Slightly",
"Strongly", "DTA",
"Refusal"),
col = "blue", cex.names = 0.6)
}
Знаете ли вы, что может бытьпроблема?
![enter image description here](https://i.stack.imgur.com/HBdmc.png)