小编ali*_*ire的帖子

如何在R中为我的数据拟合平滑曲线?

我试图绘制一条平滑的曲线R.我有以下简单的玩具数据:

> x
 [1]  1  2  3  4  5  6  7  8  9 10
> y
 [1]  2  4  6  8  7 12 14 16 18 20
Run Code Online (Sandbox Code Playgroud)

现在,当我使用标准命令绘制它时,它看起来很崎岖和前卫,当然:

> plot(x,y, type='l', lwd=2, col='red')
Run Code Online (Sandbox Code Playgroud)

如何使曲线平滑,以便使用估计值对3条边进行舍入?我知道有很多方法可以拟合平滑曲线,但我不确定哪种方法最适合这种类型的曲线以及如何编写它R.

plot r curve-fitting

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

为什么使用as.factor()而不仅仅是因子()

我最近看到马特Dowle写一些代码as.factor(),特别是

for (col in names_factors) set(dt, j=col, value=as.factor(dt[[col]]))
Run Code Online (Sandbox Code Playgroud)

对这个答案的评论中.

我使用了这个片段,但是我需要明确设置因子级别以确保级别以我想要的顺序出现,所以我不得不改变

as.factor(dt[[col]])
Run Code Online (Sandbox Code Playgroud)

factor(dt[[col]], levels = my_levels)
Run Code Online (Sandbox Code Playgroud)

这让我想到:什么(如果有的话)是使用as.factor()与仅仅的好处factor()

r r-factor

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

如何在R中舍入到整数?

是否有可能在R中舍入到最接近的整数?我有时间戳数据,我想整理到最近的整分钟,以代表这一分钟内的活动.

例如,如果时间以minutes.seconds格式显示:

x <- c(5.56, 7.39, 12.05, 13.10)
round(x, digits = 0)
[1]  6  7 12 13
Run Code Online (Sandbox Code Playgroud)

我的预期输出将是:

round(x, digits = 0)
[1]  6  8 13 14
Run Code Online (Sandbox Code Playgroud)

我知道这很令人困惑,但是当我计算每分钟活动数据时,四舍五入到最接近的分钟是有道理的.这可能吗?

r rounding

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

在R markdown html文档的右上角插入徽标

我正在尝试将我的公司徽标放在我的html文档的右上角

这是我的代码:

<script>
  $(document).ready(function() {
    $head = $('#header');
    $head.prepend('<div class="knitr source"><img src="logo.png" width="220px" align="right"   ></div>')
  });
</script>

---
title: "Title"
author: "Author"
date: "Date"
theme: bootstrap
output: html_document
keep_md: true
---

```{r echo=FALSE,  include=FALSE}
knitr::include_graphics('./logo.png')
```

<br>

## 1) Header

<br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat …
Run Code Online (Sandbox Code Playgroud)

html r knitr r-markdown

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

在凸起图表中使用曲线

我正试图制作一个颠簸图表(如平行坐标,但有一个有序的x轴)来显示随时间的排名.我可以很容易地制作一个直线图:

library(ggplot2)
set.seed(47)

df <- as.data.frame(as.table(replicate(8, sample(4))), responseName = 'rank')
df$Var2 <- as.integer(df$Var2)

head(df)
#>   Var1 Var2 rank
#> 1    A    1    4
#> 2    B    1    2
#> 3    C    1    3
#> 4    D    1    1
#> 5    A    2    3
#> 6    B    2    4

ggplot(df, aes(Var2, rank, color = Var1)) + geom_line() + geom_point()
Run Code Online (Sandbox Code Playgroud)

精彩.但是,现在,我想让连接线弯曲.尽管每x不超过一y,但geom_smooth提供了一些可能性.loess看起来它应该工作,因为它可以忽略除最近的点之外的点.然而,即使调整最好,我仍然会错过许多积分并超过其他应该平坦的点:

ggplot(df, aes(Var2, rank, color = Var1)) + 
    geom_smooth(method = 'loess', span = .7, se = …
Run Code Online (Sandbox Code Playgroud)

r spline ggplot2

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

R:使用data.table和self-join按组进行首次观察

我正在尝试使用data.table通过一组三个变量获得最高行.

我有一个有效的解决方案:

col1 <- c(1,1,1,1,2,2,2,2,3,3,3,3)
col2 <- c(2000,2000,2001,2001,2000,2000,2001,2001,2000,2000,2001,2001)
col4 <- c(1,2,3,4,5,6,7,8,9,10,11,12)
data <- data.frame(store=col1,year=col2,month=12,sales=col4)

solution1 <- data.table(data)[,.SD[1,],by="store,year,month"]
Run Code Online (Sandbox Code Playgroud)

我使用Matthew Dowle在以下链接中建议的较慢方法:

https://stats.stackexchange.com/questions/7884/fast-ways-in-r-to-get-the-first-row-of-a-data-frame-grouped-by-an-identifier

我正在尝试实现更快的自联接但无法使其工作.

有没有人有什么建议?

r self-join data.table

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

如何在R Shiny中实现对数据表的内联编辑

我正在运行一个R Shiny网络应用程序.我使用数据表来显示数据.但我想要内联编辑表格的单元格.我无法做到这一点.任何人都可以指导我吗?

这是我的代码

# UI.R

fluidRow(
         column(4,dataTableOutput("numericalBin")),
         column(8,h1("numericalBin_Chart")))
)
Run Code Online (Sandbox Code Playgroud)
# Server.R

output$numericalBin <- renderDataTable({
    mtcars
  },options = list(    
    lengthChange=FALSE,
    searching=FALSE,
    autoWidth=TRUE,
    paging=FALSE
  ))
Run Code Online (Sandbox Code Playgroud)

我想编辑单元格.以下是我想要发挥作用的链接:https:
//editor.datatables.net/examples/inline-editing/simple.html

我需要在选项列表中添加一些东西,但我找不到合适的.

datatable r shiny

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

使用ggplot2将右侧的轴标签对齐

考虑以下

d = data.frame(y=rnorm(120), 
               x=rep(c("bar", "long category name", "foo"), each=40))

ggplot(d,aes(x=x,y=y)) + 
    geom_boxplot() + 
    theme(axis.text.x=element_text(size=15, angle=90))
Run Code Online (Sandbox Code Playgroud)

标签不对齐的情节

x轴标签由标签的中心对齐.是否可以在右侧自动对齐,以便每个标签都在图表的正下方?

graphics r graph ggplot2

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

如何传播具有重复标识符的列?

A有以下几个:

structure(list(age = c("21", "17", "32", "29", "15"), 
               gender = structure(c(2L, 1L, 1L, 2L, 2L), .Label = c("Female", "Male"), class = "factor")), 
          row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame"), .Names = c("age", "gender"))

    age gender
  <chr> <fctr>
1    21   Male
2    17 Female
3    32 Female
4    29   Male
5    15   Male
Run Code Online (Sandbox Code Playgroud)

我试图用它tidyr::spread来实现这个目标:

  Female Male
1    NA     21
2    17     NA
3    32     NA
4    NA     29
5    NA     15
Run Code Online (Sandbox Code Playgroud)

我认为spread(gender, age)会工作,但我收到一条错误消息:

Error: Duplicate …
Run Code Online (Sandbox Code Playgroud)

r tidyr

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

ggplot2:修复因子级别的颜色

我正在开发一个更大的项目,我正在ggplot2中创建几个图.这些图涉及绘制几个不同类别的几种不同结果(想想:国家,物种,类型).我想完全修复离散类型到颜色的映射,使得Type = A始终显示为红色,Type = B始终显示为蓝色,依此类推所有绘图,而不管其他因素是什么.我知道scale_fill_manual()我可以在哪里手动提供颜色值,然后使用drop = FALSE它有助于处理未使用的因子水平.但是,我发现这非常麻烦,因为每个绘图都需要一些手动工作来处理以正确方式排序因子,排序颜色值以匹配因子排序,丢弃未使用的级别等.

我正在寻找的是一种方式,我可以映射一次和全局因素水平到特定的颜色(A =绿色,B =蓝色,C =红色,......)然后只是绘制任何我喜欢的绘图和ggplot挑选正确的颜色.

这里有一些代码来说明这一点.

# Full set with 4 categories
df1 <- data.frame(Value = c(40, 20, 10, 60), 
                  Type = c("A", "B", "C", "D"))

ggplot(df1, aes(x = Type, y = Value, fill = Type)) + geom_bar(stat = "identity")


# Colors change complete because only 3 factor levels are present
df2 <- data.frame(Value = c(40, 20, 60), 
                  Type = c("A", "B", "D"))

ggplot(df2, aes(x = Type, y …
Run Code Online (Sandbox Code Playgroud)

r colors ggplot2

12
推荐指数
3
解决办法
8557
查看次数