小编h3r*_*m4n的帖子

通过运行信号值计算`cumsum`

我想计算cumsum一下每次运行信号的值signal == 1.

示例数据:

set.seed(123)
df <- data.frame(Date = seq.Date(as.Date('2016-09-01'),as.Date('2016-09-30'),by = 'days'),
                 value = sample(1:10,size=30,replace = TRUE),
                 signal = c(rep(0,3),rep(1,2),rep(0,1),rep(1,5),rep(0,6),rep(1,3),rep(0,5),rep(1,5)))

> head(df,12)
         Date value signal
1  2016-09-01    10      0
2  2016-09-02    10      0
3  2016-09-03     7      0
4  2016-09-04     8      1
5  2016-09-05     1      1
6  2016-09-06     5      0
7  2016-09-07     8      1
8  2016-09-08     3      1
9  2016-09-09     4      1
10 2016-09-10     3      1
11 2016-09-11     2      1
12 2016-09-12     5      0
Run Code Online (Sandbox Code Playgroud)

到目前为止我做了什么:

我的解决方案正在运行,但我认为使用dplyr …

r dplyr data.table

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

超过 5 年的移动平均线,日期不规则

我有大量文件(~1200),每个文件都包含一个大的时间序列,其中包含有关地下水高度的数据。每个文件的系列的开始日期和长度都不同。日期之间可能存在较大的数据间隔,例如(此类文件的一小部分):

Date        Height (cm)
14-1-1980   7659
28-1-1980   7632
14-2-1980   7661
14-3-1980   7638
28-3-1980   7642
14-4-1980   7652
25-4-1980   7646
14-5-1980   7635
29-5-1980   7622
13-6-1980   7606
27-6-1980   7598
14-7-1980   7654
28-7-1980   7654
14-8-1980   7627
28-8-1980   7600
12-9-1980   7617
14-10-1980  7596
28-10-1980  7601
14-11-1980  7592
28-11-1980  7614
11-12-1980  7650
29-12-1980  7670
14-1-1981   7698
28-1-1981   7700
13-2-1981   7694
17-3-1981   7740
30-3-1981   7683
14-4-1981   7692
14-5-1981   7682
15-6-1981   7696
17-7-1981   7706
28-7-1981   7699
28-8-1981   7686
30-9-1981   7678
17-11-1981  7723
11-12-1981  7803
18-2-1982   7757
16-3-1982   7773 …
Run Code Online (Sandbox Code Playgroud)

r date time-series

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

如何在闪亮的选项卡面板和图形之间创建间距?

我使用该tabsetpanel()函数为两个不同的图表创建选项卡。但是,我遇到了这样的问题:图表的标题非常靠近选项卡并且没有任何间距。它看起来像是被压在一起的,所以我想知道如何在选项卡面板和图表之间创建间距?我的左侧有一个闪亮的小部件,它控制右侧的图表。这是我的代码的示例:

tabPanel("Name",
   sidebarLayout(
     sidebarPanel(
       selectInput(
         <shiny widget coding is here>
       )
     ),
     mainPanel(
       tabsetPanel(
         tabPanel("graphname", plotlyOutput("graph1")),
         tabPanel("graphname2", plotlyOutput("graph2"))
       )
     )
   )
)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有 tabsetPanel,然后是带有图表的 tabpanels。但图表和 tabsetpanel 栏之间没有间距,如下所示:

我怎样才能解决这个问题?

r graph shiny

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

如何从R中的文本值创建分类变量

我有一个带有分类变量的数据集Weather.该变量有3个不同的文本值,即"Dry","Drizzle"和"Rain".

我想创建另一个变量,我可以为这些变量分配数值.例如Dry1,Drizzle2Rain3.

作为辅助信息,该weather变量将用于预测水系统中的阻塞,因此我将在某种线性回归模型中使用它.

r categorical-data

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

Ifelse:将3个类别合并为一个

使用此data.frame:

df <- read.table(text = c("
ID  cat1    cat2    cat3
site1   High    High    High
site1   High    High    Medium
site1   High    High    Low
site1   High    Medium  High
site1   High    Medium  Medium
site1   High    Medium  Low
site1   High    Low High
site1   High    Low Medium
site1   High    Low Low
site1   Medium  High    High
site1   Medium  High    Medium
site1   Medium  High    Low
site1   Medium  Medium  High
site1   Medium  Medium  Medium
site1   Medium  Medium  Low
site1   Medium  Low High
site1   Medium  Low Medium
site1   Medium …
Run Code Online (Sandbox Code Playgroud)

if-statement r

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

展开组内所有可能组合的网格

我面临以下问题.我有一份并购交易清单,每笔交易都包括(1)收单方,(2)供应商,(3)目标的数据.数据的结构关系可以是n:n:n,看起来类似于以下内容:

dealid acquirer target vendor
1      FirmA    FirmB  FirmC
1      FirmD           FirmE
2      .....................
Run Code Online (Sandbox Code Playgroud)

所以问题在于交易中的行本身没有意义,因此,例如,FirmD也是FirmB的共同收购者.

我现在需要在每个dealid中创建所有可能的acquirer -target-vendor组合.我已经设法使用该expand.grid功能或简单地通过扩展网格merge.但是,我不知道如何扩展组内所有可能组合的网格.

r

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

从data.frame列中提取单词

在我的数据中,有一个列如下:

df <- data.frame(status = c("GET/sfuksd1567","GET/sjsh787","POST/hsfhuks","GET/sfukfiezd17","POST/fshks"), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)

我想自动创建另一个列,它是变量状态的指示器,它只提取"GET"或"POST",如df$ind=c("GET","GET","POST","GET","POST").

我试过这个功能substr,但我没有成功.

原始数据:

> df
           status
1  GET/sfuksd1567
2     GET/sjsh787
3    POST/hsfhuks
4 GET/sfukfiezd17
5      POST/fshks
Run Code Online (Sandbox Code Playgroud)

预期结果:

> df
           status  ind
1  GET/sfuksd1567  GET
2     GET/sjsh787  GET
3    POST/hsfhuks POST
4 GET/sfukfiezd17  GET
5      POST/fshks POST
Run Code Online (Sandbox Code Playgroud)

r extract dataframe

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

使用sum而不是count来绘制分箱数据

我试图寻找答案,但似乎找不到适合我的工作.

我有一个data包含两个变量的数据集():人的年龄(age)和奖励数(awards)

我的目标是在R.FYI中绘制年龄奖励的数量,一个人可以有多个奖项,人们可以拥有相同的年龄.

我试图绘制直方图和条形图,但问题在于它计算观察数而不是总计奖励数.

样本数据集:

age <- c(21,22,22,25,30,34,45,26,37,46,49,21)
awards <- c(0,3,2,1,0,0,1,3,1,1,1,1)
data <- data.frame(cbind(age,awards))
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一个代表这些数据的直方图(或条形图).

理想情况下,我希望将年龄分成年龄组.例如,20-30,31-40,41-50,然后是每个组的奖励总数.

年龄组将在x轴上,每个年龄组的奖励总数将在y轴上.

谢谢!

r data-visualization histogram bar-chart

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

结合两个(布尔)分类因子两个新的

给定两个布尔分类因子,我如何将它们的组合作为第三类?

> my_data <- data.frame(a = c(0, 0, 1, 1, 1),
                        b = c(0, 1, 0, 1, 1))
> my_data
  a b
1 0 0
2 0 1
3 1 0
4 1 1
5 1 1
Run Code Online (Sandbox Code Playgroud)

我想添加一个新类别,结合使用a和b,以便:

> my_data
  a b c
1 0 0 1
2 0 1 2
3 1 0 3
4 1 1 4
5 1 1 4
Run Code Online (Sandbox Code Playgroud)

我不想懒惰,为自己考虑一下:

my_data$c <- as.numeric(as.factor(my_data$a + 1 + (my_data$b + 1) * 2))
Run Code Online (Sandbox Code Playgroud)

这很接近,但我发现它并不特别优雅.因此,可以理解基础R中的任何更好的解决方案.肯定还有喜欢reshape2提供类似功能的软件包.

r

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