小编Eri*_*ail的帖子

R的Sankey Diagrams?

我试图用R中的Sankey图来可视化我的数据流.

我发现这个博客文章链接到一个产生Sankey图的R脚本,不幸的是它非常原始且有些局限(见下面的示例代码和数据).

有没有人知道其他脚本 - 或者甚至是一个更开发的包?我的最终目标是通过图表组件的相对大小来可视化数据流和百分比,就像在这些Sankey Diagrams示例中一样.

在r-help列表上发布了一个类似的问题,但是经过两周没有任何回复,我在stackoverflow上尝试运气.

谢谢,埃里克

PS.我知道并行集图,但这不是我想要的.

# thanks to, https://tonybreyal.wordpress.com/2011/11/24/source_https-sourcing-an-r-script-from-github/
  sourc.https     <- function(url, ...) {
# install and load the RCurl package 
if (match('RCurl', nomatch=0, installed.packages()[,1])==0) {
  install.packages(c("RCurl"), dependencies = TRUE)
  require(RCurl)  
} else require(RCurl)    

# parse and evaluate each .R script
  sapply(c(url, ...), function(u) {
    eval(parse(text = getURL(u, followlocation = TRUE, 
    cainfo  = system.file("CurlSSL", "cacert.pem", 
    package = "RCurl"))), envir = .GlobalEnv)
 } )
 }

# from …
Run Code Online (Sandbox Code Playgroud)

diagram visualization r flowchart sankey-diagram

86
推荐指数
9
解决办法
4万
查看次数

如何选择数据框中分组变量中的第一行和最后一行?

如何为id以下数据框中的每个唯一选择第一行和最后一行?

tmp <- structure(list(id = c(15L, 15L, 15L, 15L, 21L, 21L, 22L, 22L, 
22L, 23L, 23L, 23L, 24L, 24L, 24L, 24L), d = c(1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), gr = c(2L, 1L, 
1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L), mm = c(3.4, 
4.9, 4.4, 5.5, 4, 3.8, 4, 4.9, 4.6, 2.7, 4, 3, 3, 2, 4, 2), area = c(1L, …
Run Code Online (Sandbox Code Playgroud)

aggregate r dataframe

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

抑制粘贴中的NA()

关于赏金

Ben Bolkerpaste2解决方案产生了一个""粘贴的字符串包含NA在同一位置的时间.像这样,

> paste2(c("a","b", "c", NA), c("A","B", NA, NA))
[1] "a, A" "b, B" "c"    ""
Run Code Online (Sandbox Code Playgroud)

第四个元素是一个""而不是NA像这样,

[1] "a, A" "b, B" "c"  NA     
Run Code Online (Sandbox Code Playgroud)

我正在为能解决这个问题的人提供这笔小额奖金.

原始问题

我已经阅读了帮助页面?paste,但我不明白如何让R忽略NAs.我做了以下,

foo <- LETTERS[1:4]
foo[4] <- NA
foo
[1] "A" "B" "C" NA
paste(1:4, foo, sep = ", ")
Run Code Online (Sandbox Code Playgroud)

得到

[1] "1, A"  "2, B"  "3, C"  "4, NA"
Run Code Online (Sandbox Code Playgroud)

我想得到什么,

[1] "1, A" "2, B" "3, C" "4" …
Run Code Online (Sandbox Code Playgroud)

r paste na

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

如何在Calendar Heatmap上使用黑白填充图案而不是颜色编码

我正在使用Paul Bleicher日历热图来随着时间的推移可视化一些事件,我有兴趣添加 黑白填充图案而不是(或在颜色编码之上)以增加日历热图的可读性.黑白打印.

以下是Calendar Heatmap颜色的示例,

日历热图颜色

这是黑白相间的样子,

日历热图黑色和白色

很难区分黑人和白人的各个级别.

是否有一种简单的方法可以让R为6级而不是颜色添加某种模式?

用于以彩色重现Calendar Heatmap的代码.

source("http://blog.revolution-computing.com/downloads/calendarHeat.R")

stock <- "MSFT"
start.date <- "2012-01-12"
end.date <- Sys.Date()

quote <- paste("http://ichart.finance.yahoo.com/table.csv?s=", stock, "&a=", substr(start.date,6,7), "&b=", substr(start.date, 9, 10), "&c=", substr(start.date, 1,4), "&d=", substr(end.date,6,7), "&e=", substr(end.date, 9, 10), "&f=", substr(end.date, 1,4), "&g=d&ignore=.csv", sep="")
stock.data <- read.csv(quote, as.is=TRUE)

# convert the continuous var to a categorical var 
stock.data$by <- cut(stock.data$Adj.Close, b = 6, labels = F)

calendarHeat(stock.data$Date, stock.data$by, varname="MSFT Adjusted Close")
Run Code Online (Sandbox Code Playgroud)

更新02-13-2013 03:52:11Z,添加图案是什么意思, …

plot r visualize heatmap ggplot2

25
推荐指数
3
解决办法
8594
查看次数

简化了R中的dput()

我想念一种以透明的方式将数据添加到SO答案的方法.我的经验是,该structure对象dput()有时会使没有经验的用户感到不必要.但是我没有耐心每次都将它复制/粘贴到一个简单的数据框中,并希望自动化它.类似的东西dput(),但是在简化版中.

说我通过复制/粘贴和其他一些hos有这样的数据,

Df <- data.frame(A = c(2, 2, 2, 6, 7, 8),
                 B = c("A", "G", "N", NA, "L", "L"),
                 C = c(1L, 3L, 5L, NA, NA, NA))
Run Code Online (Sandbox Code Playgroud)

看起来像这样,

Df
#>   A    B  C
#> 1 2    A  1
#> 2 2    G  3
#> 3 2    N  5
#> 4 6 <NA> NA
#> 5 7    L NA
#> 6 8    L NA
Run Code Online (Sandbox Code Playgroud)

在一个整数内,一个因子和一个数字向量,

str(Df)
#> 'data.frame':    6 obs. of  3 variables:
#> …
Run Code Online (Sandbox Code Playgroud)

formatting r

24
推荐指数
4
解决办法
1912
查看次数

抖动geom_line()

有没有办法抖动线路geom_line()?我知道它有点违背了这个情节的目的,但如果你有一个几行的情节,并希望它们都表明它可以很方便.也许这个可见性问题的其他解决方案.

请参阅下面的代码, 抖动geom_line

A  <- c(1,2,3,5,1)
B  <- c(3,4,1,2,3)
id <- 1:5
df <- data.frame(id, A, B)


# install.packages(reshape2)
require(reshape2) # for melt
dfm <- melt(df, id=c("id"))

# install.packages(ggplot2)
require(ggplot2)
p1 <- ggplot(data = dfm, aes(x = variable, y = value, group = id, 
color= as.factor(id))) + geom_line() + labs(x = "id # 1 is hardly 
visible as it is covered by id # 5") + scale_colour_manual(values = 
c('red','blue', 'green', 'yellow', 'black')) 


p2 <- ggplot(subset(dfm, id != …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

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

以PDF格式创建并保存R的默认代码簿

如果我加载data(mtcars)它带有一个非常整洁的码本,我可以使用它?mtcars.

我有兴趣以相同的方式记录我的数据,并且将整齐的码本保存为pdf.

是否可以保存"内容" ?mtcars以及如何创建?

谢谢,埃里克

PS我确实读过这个帖子.

更新2012-05-14 00:39:59 PDT

我正在寻找仅使用R的解决方案; 不幸的是我不能依赖其他软件(例如Tex)

更新2012-05-14 09:49:05 PDT

非常感谢大家的答案.

阅读这些答案,我意识到我应该让我的优先事项更加清晰.因此,这里列出了我对这个问题的优先顺序.

  1. R,我正在寻找一个完全基于R的解决方案.
  2. 再现性,即码本可以成为自动脚本的一部分.
  3. 可读性,文本应易于阅读.
  4. 可搜索性,可以使用任何标准软件打开并搜索的文件(这就是为什么我认为pdf将是一个很好的解决方案,但这被1到3推翻).

我目前正在使用label()Hmisc包标记我的变量,并可能最终使用Label()相同的包编写.txt代码簿.

pdf documentation r

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

使用tidyverse; 在组内变化之前和之后计数,为每个唯一班次生成新变量

我正在寻找一个tidyverse -solution,它可以计算数据数据中TF组内唯一值的出现次数.当我想要从那一点向前和向后计算变化时.此计数应存储在一个新变量中,以便为每个唯一的移位保存加号和减号.idtblTFPM##PM##TF

这个问题类似于我之前提出的问题,但在这里我特意寻找使用tidyverse工具的解决方案.Uwe data.table 在这里使用了一个优雅的答案.

如果这个问题违反了任何SO政策,请告诉我,我会很乐意重新打开我的初步问题,或者附上一个赏金问题.

用一个最小的工作例来说明我的问题.我有这样的数据,

# install.packages(c("tidyverse"), dependencies = TRUE)
library(tibble)

tbl <- tibble(id = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
                     1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7), 
              TF = c(NA, 0, NA, 0, 0, 1, 1, 1, NA, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr tidyverse

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

指定不同类型的缺失值(NA)

我有兴趣指定缺失值的类型.我有不同类型的丢失的数据,我试图将这些值编码为R中缺少,但我正在寻找一个解决方案,我仍然可以区分它们.

假设我有一些看起来像这样的数据,

set.seed(667) 
df <- data.frame(a = sample(c("Don't know/Not sure","Unknown","Refused","Blue", "Red", "Green"),  20, rep=TRUE), b = sample(c(1, 2, 3, 77, 88, 99),  10, rep=TRUE), f = round(rnorm(n=10, mean=.90, sd=.08), digits = 2), g = sample(c("C","M","Y","K"),  10, rep=TRUE) ); df
#                      a  b    f g
# 1              Unknown  2 0.78 M
# 2              Refused  2 0.87 M
# 3                  Red 77 0.82 Y
# 4                  Red 99 0.78 Y
# 5                Green 77 0.97 M
# 6                Green  3 0.99 K …
Run Code Online (Sandbox Code Playgroud)

r base missing-features missing-data

13
推荐指数
3
解决办法
5645
查看次数

geom_bar()+象形图,怎么样?

(见帖子底部的更新)

最初的帖子,2014-07-29 11:43:38Z

我在"经济学人"的网站上看到了这些图片,并想知道是否有可能制作出一个geom_bar()嵌入这种说明性图标的图片?(下面的虚拟数据)

在此输入图像描述

虚拟数据,

require(ggplot2)

# Generate data
df3 <- data.frame(units = c(1.3, 1.8, 2.7, 4.2, 4.7, 6.7, 20), 
                   what = c('Wikipedia', 'London Olympic Park', 'Aircraft carrier', 
                            'The Great Pyramid', 'Stonehenge', 'Burj Khalifas', 
                            'Empire State Building'))

# make gs an ordered factor
df3$what <- factor(df3$what, levels = df3$what, ordered = TRUE)

    #plots
    ggplot(df3, aes(what, units)) + geom_bar(fill="white", colour="darkgreen", 
           alpha=0.5, stat="identity") + coord_flip() + scale_x_discrete() + 
           scale_y_continuous(breaks=seq(0, 20, 2)) + theme_bw() + 
           theme(axis.title.x  = element_blank(), axis.title.y …
Run Code Online (Sandbox Code Playgroud)

icons r data-visualization bar-chart ggplot2

13
推荐指数
2
解决办法
2431
查看次数