相关疑难解决方法(0)

将数据框架从宽格式转换为长格式

将我data.frame从宽表转换为长表时遇到一些麻烦.目前它看起来像这样:

Code Country        1950    1951    1952    1953    1954
AFG  Afghanistan    20,249  21,352  22,532  23,557  24,555
ALB  Albania        8,097   8,986   10,058  11,123  12,246
Run Code Online (Sandbox Code Playgroud)

现在我想把它data.frame变成一个长期的data.frame.像这样的东西:

Code Country        Year    Value
AFG  Afghanistan    1950    20,249
AFG  Afghanistan    1951    21,352
AFG  Afghanistan    1952    22,532
AFG  Afghanistan    1953    23,557
AFG  Afghanistan    1954    24,555
ALB  Albania        1950    8,097
ALB  Albania        1951    8,986
ALB  Albania        1952    10,058
ALB  Albania        1953    11,123
ALB  Albania        1954    12,246
Run Code Online (Sandbox Code Playgroud)

我已经看过并尝试了它melt()reshape()功能,因为有些人提出了类似的问题.但是,到目前为止我只得到凌乱的结果.

如果有可能我想用这个reshape() …

r reshape dataframe r-faq

142
推荐指数
7
解决办法
9万
查看次数

在R中的同一图表上绘制多个列

我有以下数据框:

A       B       C       D       Xax
0.451   0.333   0.034   0.173   0.22        
0.491   0.270   0.033   0.207   0.34    
0.389   0.249   0.084   0.271   0.54    
0.425   0.819   0.077   0.281   0.34
0.457   0.429   0.053   0.386   0.53    
0.436   0.524   0.049   0.249   0.12    
0.423   0.270   0.093   0.279   0.61    
0.463   0.315   0.019   0.204   0.23
Run Code Online (Sandbox Code Playgroud)

我需要在同一个图中绘制所有这些列(在x轴上我想要变量Xax,y轴是变量A,B,C和D),并且还要单独绘制每个变量的回归线.

我试过这个:

pl<-ggplot(data=df) + geom_point(aes(x=Xax,y=A,size=10)) + 
  geom_point(aes(x=Xax,y=B,size=10)) + 
  geom_point(aes(x=Xax,y=C,size=10)) + 
  geom_point(aes(x=Xax,y=D,size=10)) + 
  geom_smooth(method = "lm", se=FALSE, color="black")
Run Code Online (Sandbox Code Playgroud)

但它只绘制了第一个(Xax和A)

r ggplot2

35
推荐指数
3
解决办法
9万
查看次数

ggplot与x轴上的字符串

我正在尝试绘制一条带有几条曲线的图.x轴不是数值,而是字符串.

这很好用(比如如何在R中绘制数据帧的所有列):

require(ggplot2)
df_ok <- rbind(data.frame(x=4:1,y=rnorm(4),d="d1"),data.frame(x=3:1,y=rnorm(3),d="d2"))
ggplot(df_ok, aes(x,y)) + geom_line(aes(colour=d))
Run Code Online (Sandbox Code Playgroud)

但我的数据看起来像这样:

require(ggplot2)
df_nok <- rbind(data.frame(x=c("four","three","two","one"),y=rnorm(4),d="d1"),data.frame(x=c("three","two","one"),y=rnorm(3),d="d2"))
ggplot(df_nok, aes(x,y)) + geom_line(aes(colour=d))
Run Code Online (Sandbox Code Playgroud)

我得到错误geom_path:每组只包含一个观察.你需要调整群体美感吗?.即使没有出现图形线,也会绘制轴,并且x轴包含正确的标签 - 但也是错误的顺序.

知道如何尽可能简单地绘制这个吗?(另请注意某些系列的缺失x值).

plot r ggplot2 dataframe

16
推荐指数
2
解决办法
2万
查看次数

ggplot每组只包含一个观察

我试图让类似这样的回答一个情节:/sf/answers/341455551/

我的数据框如下所示:

df2 <- read.table(text='measurements samples value
1        4hours   sham1     6
2          1day   sham1   175
3         3days   sham1   417
4         7days   sham1   163
5        14days   sham1    37
6        90days   sham1   134
7        4hours   sham2     8
8          1day   sham2   402
9         3days   sham2   482
10        7days   sham2    67
11       14days   sham2    16
12       90days   sham2    31
13       4hours   sham3   185
14         1day   sham3   402
15        3days   sham3   482
16        7days   sham3    85
17       14days   sham3    29
18       90days   sham3    10',header=T) …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

14
推荐指数
1
解决办法
2万
查看次数

ggplot:多列值的Boxplot

以下是我作为csv文件导入的数据类型:

RPID    mm  ID  Time    Freq    Freq.1  Freq.2
RPO483  1   B6AC    5   23301   30512   
RPO483  1   B6AC    25  19      17  
RPO244  1   B6C     5   14889   20461   
RPO244  1   B6C     25  81      86  
RPO876  1   G3G3A   5   106760  59950   103745
RPO876  1   G3G3A   25  4578    38119   37201
RPO876  7   F3G3A   5   205803  148469  173580
RPO876  7   F3G3A   25  28648   30321   26454
RPO939  7   F3E324A 5   242285      
RPO939  7   F3E324A 25  42837       
RPO934  7   F3E325A 5   242001  129272  112371
RPO934  7   F3E325A …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

7
推荐指数
1
解决办法
4万
查看次数

标签 统计

r ×5

ggplot2 ×4

dataframe ×2

plot ×2

r-faq ×1

reshape ×1