相关疑难解决方法(0)

如何制作一个很好的R可重复的例子

在与同事讨论性能,教学,发送错误报告或在邮件列表上搜索指导时,以及在Stack Overflow上,通常会询问可重复的示例并始终提供帮助.

您有什么建议创建优秀示例的提示?如何以文本格式粘贴中的数据结构?您还应该包含哪些其他信息?

在另外还有其他招数来使用dput(),dump()structure()?你什么时候应该包括library()require()声明?其中保留字应避免一个,此外c,df,data等?

怎样才能成为一位伟大的重复的例子?

r r-faq

2474
推荐指数
23
解决办法
28万
查看次数

在同一图表上使用ggplot2将两个变量绘制为线条

这是一个非常新的问题,但我说有这样的数据:

test_data <-
  data.frame(
    var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
    var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
    date = seq(as.Date("2002-01-01"), by="1 month", length.out=100)
  )
Run Code Online (Sandbox Code Playgroud)

如何在x轴上使用?绘制时间序列var0var1同一图表?奖励积分,如果你做和不同的颜色,并且可以包括一个传奇!dateggplot2var0var1

我确信这很简单,但我找不到任何例子.

r graph time-series ggplot2 r-faq

293
推荐指数
5
解决办法
43万
查看次数

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

将我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不一致:为什么add = T有时可以工作,有时候不在plot()函数中?

为什么R与函数中的add参数不一致plot()?它有时会起作用,有时却不起作用!在这个例子中,它使参数add=TRUE没有问题:

plot(0:10, 0:10*3)
plot(identity, add=TRUE, xlim=c(0,10))
plot(function (x) { sin(x)*10 }, add=TRUE, xlim=c(0,10))
Run Code Online (Sandbox Code Playgroud)

但是当我发出

plot(c(2, 3, 4), c(20,10,15), add=TRUE, pch="A")
Run Code Online (Sandbox Code Playgroud)

它不起作用!! 它说"添加"不是图形参数.

请不要写我应该使用的points().我知道我可以用它.我想了解R的奇怪行为 - 为什么它有时有效,有时不行?

plot r add

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

在同一图中绘制多个函数曲线

绘制与给定函数对应的曲线的方法是:

fun1 <- function(x) sin(cos(x)*exp(-x/2))
plot (fun1, -8, 5)
Run Code Online (Sandbox Code Playgroud)

如何在同一个图中添加另一个函数的曲线(例如fun2,也由其数学公式定义)?

plot r

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

在一个图上绘制两个图.功能线不起作用

我想在一个图上绘制两个图.我读了这篇文章,但功能lines不起作用,没有任何反应.我不知道会出现什么问题.有任何想法吗?

编辑.可重复的例子:

> tr_error
[1] 0.2314984 0.2314990 0.2314981 0.2314955 0.2314955 0.2314943 0.2314912
[8] 0.2314924
> tst_error
[1] 0.001461264 0.001461767 0.001461001 0.001459936 0.001459626 0.001458594
[7] 0.001457719 0.001458288
> plot(tst_error, type='l')
> lines(tr_error, type='l', col='red')
Run Code Online (Sandbox Code Playgroud)

也许有第二个情节,但它更高?

r

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

在同一图中绘制两个图

这个问题中使用ggplot的解决方案对我的数据非常有效.但是,我试图添加一个传奇,我尝试的一切都不起作用......

例如,在上面问题的ggplot示例中,如何添加图例以显示红色曲线与"Ocean"相关,绿色曲线与"Soil"相关?是的,我想添加我将定义的文本,它与我的data.frame中的任何其他变量无关.

以下示例是我自己的一些数据......

Rate     Probability      Stats
1.0e-04    1e-04          891.15 
1.0e-05    1e-04          690
...
Run Code Online (Sandbox Code Playgroud)

等(大约400行).我有两个类似于上面的数据帧.所以我的代码是

g <- ggplot(Master1MY, aes(Probability))
g <- g + geom_point(aes(y=Master1MY$Stats), colour="red", size=1)
g <- g + geom_point(aes(y=Transposon1MY$Stats), colour="blue", size=1)
g + labs(title= "10,000bp and 1MY", x = "Probability", y = "Stats")
Run Code Online (Sandbox Code Playgroud)

情节看起来像这个

我只想要一个红色和蓝色的传说,说"大师"和"转座子"

谢谢!

r graph ggplot2

1
推荐指数
1
解决办法
995
查看次数

在ggplot中绘制同一数据框中的多个变量

我有一个可以这样定义的数据集:

Week <- c("2015_52", "2016_01", "2016_02", "2016_03", "2016_04")
y1 <- runif(5, 0, 1)
y2 <- runif(5, 0, 1)
y3 <- runif(5, 0, 1)
df <- data.frame(Week, y1, y2, y3)
Run Code Online (Sandbox Code Playgroud)

我想在同一个 ggplot 上绘制所有三个 y 随着时间的推移(每个都有手动颜色和线型),但我是 ggplot 新手,以前不需要这样做。尝试模拟 StackOverflow 上类似问题的答案会导致错误。

例如...

library(ggplot2)
ggplot(df, aes(x = Week, y = value, colour = variable)) + 
  geom_line()
Run Code Online (Sandbox Code Playgroud)

...正如在这个问题中给出的错误Error in eval(expr, envir, enclos) : object 'value' not found

但尝试回答这个问题......

ggplot() + 
  geom_line(data = df, 
            aes(x = Week, y = y1, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

R:在图表上叠加点

我正在使用 R 编程语言。我正在尝试学习如何在图表上叠加点,然后将它们可视化。

使用以下代码,我可以生成一些时间序列数据,按月聚合它们,取平均值/最小值/最大值,并绘制以下图表:

library(xts)
library(ggplot2)
library(dplyr)
library(plotly)
library(lubridate)

set.seed(123)

#time series 1
date_decision_made = seq(as.Date("2014/1/1"), as.Date("2016/1/1"),by="day")

property_damages_in_dollars <- rnorm(731,100,10)

final_data <- data.frame(date_decision_made, property_damages_in_dollars)


#####aggregate

final_data$year_month <- format(as.Date(final_data$date_decision_made), "%Y-%m")
final_data$year_month <- as.factor(final_data$year_month)


f = final_data %>% group_by (year_month) %>% summarise(max_value = max(property_damages_in_dollars), mean_value = mean(property_damages_in_dollars), min_value = min(property_damages_in_dollars))



####plot####

fig <- plot_ly(f, x = ~year_month, y = ~max_value, type = 'scatter', mode = 'lines',
        line = list(color = 'transparent'),
        showlegend = FALSE, name = 'max_value') 

fig <- fig %>% add_trace(y …
Run Code Online (Sandbox Code Playgroud)

r time-series dplyr plotly r-plotly

1
推荐指数
1
解决办法
1115
查看次数

标签 统计

r ×9

ggplot2 ×3

r-faq ×3

graph ×2

plot ×2

time-series ×2

add ×1

dataframe ×1

dplyr ×1

plotly ×1

r-plotly ×1

reshape ×1