多年來,我有一個由許多國家組成的非常大的小組。對于一個樣本,說我有
structure(list(country = structure(c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 9L, 9L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L,
10L, 10L, 10L, 10L), .Label = c("Bangladesh", "Barbados", "Benin",
"Burundi", "Cameroon", "Chile", "Cyprus", "Ecuador", "Equatorial Guinea",
"Gabon", "Ghana", "Guatemala", "Guinea", "Guyana", "Haiti", "India",
"Jamaica", "Jordan", "Lebanon", "Liberia", "Madagascar", "Mali",
"Mexico", "Morocco", "Mozambique", "Nepal", "Nicaragua", "Niger",
"Oman", "Pakistan", "Panama", "Papua New Guinea", "Peru", "Rwanda",
"Senegal", "Seychelles", "Sierra Leone", "Singapore", "Sri Lanka",
"Sudan", "Togo", "Trinidad and Tobago", "Tunisia", "Turkey",
"Uganda", "Zambia", "Zimbabwe"), class = c("pseries", "factor"
)), date = structure(c(12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L,
20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 40L,
41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 52L, 53L,
54L, 1L, 2L, 3L, 4L, 5L, 6L), .Label = c("1965", "1966", "1967",
"1968", "1969", "1970", "1971", "1972", "1973", "1974", "1975",
"1976", "1977", "1978", "1979", "1980", "1981", "1982", "1983",
"1984", "1985", "1986", "1987", "1988", "1989", "1990", "1991",
"1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999",
"2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007",
"2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015",
"2016", "2017", "2018"), class = c("pseries", "factor")), dist = c(-2.44153863355447,
-0.565497304455015, 1.4222058591902, 1.18583114700364, 0.936095936859405,
-0.40582369098349, 2.08296049774769, -1.59377116576285, 0.316969269882462,
-0.562808458278515, -0.438155688763343, 0.824980940313303, -0.60293744113302,
0.397182279339227, 1.34777053122572, 0.00539983501313633, 0.0528824118570846,
-0.838507946421168, 0.220969370384196, -1.06945294612116, 0.157324834050942,
0.244080457191975, 0.215931770884978, 0.226176571912671, 0.197663973781873,
0.183399695771442, 0.334605869075331, 0.0683789169881243, -0.0432432418415798,
-0.191834311017179, -0.368292801016647, -0.572222256415503, -0.838601784768107,
-1.15213567684887, -1.49844386483361, 2.39265920977342, 1.90573467650352,
1.3362714819111, 0.158391029649629, 1.12699318386612, 2.38996532864524
), dummy = c(0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 0, 1, 1)), row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L,
10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 400L,
401L, 402L, 403L, 404L, 405L, 406L, 407L, 408L, 409L, 410L, 411L,
412L, 413L, 414L, 415L, 416L, 417L, 418L, 419L, 420L), class = "data.frame")
我想提取一些國家并為每個國家繪制變數“diff”。換句話說,我想為我的面板之外的國家樣本創建不同的幾個圖。
我想我可以從
countries=c("Bangladesh", "Equatorial Guinea")
for (i in 1:length(countries)) {
assign(countries[i],data_split[[i]])
}
然后對于情節應該是類似的,但我在第一部分迷路了。
uj5u.com熱心網友回復:
您可以使用拆分資料split,然后遍歷該結果的組件。下面只給出了一個默認值plot,但如果需要,您可以對其進行調整。
data_split <- split(data, data$country)
for (country in names(data_split)) {
country_data <- data_split[[country]]
if (nrow(country_data) > 0) {
plot(as.numeric(country_data$date), country_data$dist, main = country)
}
}
也就是說,就像評論者指出的那樣,facet_grid或者facet_wrap在我看來是一種更優雅的方法來做同樣的事情。在創建繪圖之前,您可以對資料進行子集化以僅選擇所需的國家/地區。
像這樣的東西:
countries <- c("Bangladesh", "Equatorial Guinea")
ggplot(data[data$country %in% countries, ], aes(as.numeric(as.character(date)), dist))
geom_line()
facet_wrap(~ country)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465257.html
上一篇:我正在嘗試根據R中的類別從一個資料幀創建多個資料幀。使用回圈,但只保留最后一次迭代
下一篇:如何捕獲第x個模式1到模式2
