gpt4 book ai didi

r - 生成数据以在 R 中创建绘图

转载 作者:行者123 更新时间:2023-11-30 09:29:27 24 4
gpt4 key购买 nike

我开始的任务是复制我在研究中看到的情节。然而,当我尝试这个时,我对它是如何创建的感到困惑。

这就是情节的样子:

enter image description here

图中的“x”代表具有特定分数的国家/地区的百分比(假设所有国家/地区的分数==1)。两条线代表另外两个自变量的百分比。

现在我知道数据集看起来像这样(这只是一个示例 - 也与我的数据集的结构非常相似)。

country year    x1  x2  score
A 1990 0 0 0
A 1991 1 0 1
A 1992 1 0 1
A 1993 0 0 0
A 1995 1 0 0
A 1996 1 0 2
A 1997 1 0 0
B 1990 0 0 0
B 1991 0 0 0
B 1992 0 0 1
B 1993 0 0 2
B 1995 0 1 2
B 1996 0 0 2
B 1997 0 1 2
C 1990 0 1 2
C 1991 1 1 0
C 1992 1 0 0
C 1993 1 0 0
C 1995 1 0 0
C 1996 0 0 1
C 1997 0 0 1
C 1998 1 1 0
D 1990 0 0 2
D 1991 0 0 2
D 1992 1 1 2
D 1993 1 1 0
D 1995 0 0 1
D 1996 0 0 1
D 1997 0 0 1

正如您在上面看到的,score 变量是一个序数变量,其值为 0、1 和 2。我想创建一个数据框,它允许我以类似的方式进行绘制方式如上图所示。这就是我对如何继续感到困惑的地方。我的以下问题基于这样的假设:我需要执行以下操作才能绘制类似的图表。

如何计算得分 ==0 的州的百分比以及得分 ==0 的州的 x1 和 x2 的相应百分比

最终,我需要对分数==1 和分数==2 的国家/地区进行相同的计算。

我需要一些意见 - 所以我感谢所有建议!

最佳答案

我在 dat.txt 中使用了下面的示例数据。也许还有一种更加矢量化的方法可以做到这一点,但它确实有效。这仅适用于分数,但也可以直接将其扩展到 x1 和 x2。

# get unique score values and unique years
uniqScore = unique(dat$score)
uniqYear = unique(dat$year)
# assuming total number of countries remains constant
totalCountries = length(unique(dat$country))
# empty matrix to store results
store = matrix(NA, length(uniqYear), length(uniqScore))

# loop over unique scores
for (i in 1:length(uniqScore)) {
# loop over unique years
for (j in 1:length(uniqYear)) {
# find the number of observations with a given year and score
# subsequently divide it by the total number of possible countries
# to obtain a percentage and save it in store
store[j, i] = length(dat[dat$year == uniqYear[j] &
dat$score == uniqScore[i], 1]) /
totalCountries
}
}

# plot results
matplot(uniqYear, store, type = 'b', pch = 1:3, lty = 2, bty = 'n', las = 1,
ylab = 'Percentage', xlab = 'Year')
legend('topright', legend = uniqScore, pch = 1:3, lty = 2, col = 1:3, bty = 'n')

# or to make it into a dataframe
df = data.frame(percentage = c(store),
score = rep(uniqScore, each = nrow(store)))

a busy cat

关于r - 生成数据以在 R 中创建绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38673581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com