小编eip*_*i10的帖子

使用reshape2包和dcast在R中进行段错误

当我尝试使用dcast(从reshape2包中)重塑特定数据帧时,RStudio崩溃了.我发现崩溃实际上发生在R本身,所以我在R.app中运行了我的强制转换代码并得到了错误类型,它给这个站点起了名字:Error: segfault from C stack overflow.在Google和SO的帮助下,我了解到这是一个内存访问错误.

好的,我走得那么远,但我不知道从哪里开始.我无法提供真正可重现的示例,因为我的数据框大约是558,000行,并且小玩具示例中不会出现此问题.例如,即使我拿了一个50,000行的数据子集,也dcast可以正常工作.是否会出现导致问题的特定数据行?如果是这样,任何人都可以建议寻找哪些功能可能导致我得到的错误类型?

这是我正在构建的数据框的子集(对于某些变量使用伪值),然后是我正在使用的转换函数.我还在dput下面的函数中包含了这一小段数据,以防它玩起来有所帮助.实际数据集具有约700个值prog,15个值prog1和5个值fa.type.

  id        term   yr    nslds acad.lev    prog            prog1 fa.type amount
1  1   Fall 2009 2010 Graduate Graduate  loan 1      Other Loans    Loan   5000
2  1 Spring 2010 2010 Graduate Graduate  loan 1      Other Loans    Loan   5000
3  2   Fall 2009 2010 Graduate Graduate  loan 2    Stafford Loan    Loan   8781
4  2 Spring 2010 2010 Graduate Graduate  loan …
Run Code Online (Sandbox Code Playgroud)

r segmentation-fault reshape2

11
推荐指数
2
解决办法
1803
查看次数

ggplot2和Shiny:如何用图形大小来缩放图例的大小?

在ggplot2中,元素的大小是单独指定的.当图形的大小发生变化时,元素(例如图例)不会改变.当输出ggplot2数字的大小随浏览器窗口而变化时,这可能是Shiny中的问题.下面是虚拟Shiny应用程序的代码和不同浏览器窗口大小的两个输出数字.较小的数字是丑陋的,因为其传奇的一部分已被切断.

有没有一种方法可以直接在ggplot2中使用图形大小缩放图例大小,而无需将图形预先保存为Shiny应用程序的图像文件?

library(shiny)
library(ggplot2)

ui <- fluidPage(
    br(), br(), br(),
    plotOutput("test", height = "auto")
)

server <- function(input, output, session) {
    output$test <- renderPlot(
        height = function() {
            0.8 * session$clientData$output_test_width
        },
        expr = {
            aaa <- ggplot(mtcars, aes(wt, mpg, color = cyl)) + 
                geom_point() + 
                theme(legend.position = c(0.9, 0.9))
            print(aaa)
        }
    )
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

较大的浏览器窗口中的数字看起来很好: 在此输入图像描述

但是在小浏览器窗口中,图例顶部没有显示:

在此输入图像描述

r ggplot2 shiny

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

使用geom_sf绘图时无法删除网格线

在绘制时,删除网格线的标准方法似乎是徒劳的geom_sf.

例如,如果我们绘制一个简单的ggplot对象,这将删除网格

library(tidyverse)
library(sf)

mtcars %>%
  ggplot(
    aes(disp, hp)
  ) +
  geom_point() +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank()
  )
Run Code Online (Sandbox Code Playgroud)

回报

散点图没有网格

但是在绘图时使用相同的代码无法删除网格 geom_sf

"shape/nc.shp" %>% 
  system.file(
    package = "sf"
  ) %>% 
  st_read(
    quiet = TRUE
    ) %>%
  ggplot() +
  geom_sf(aes(fill = AREA)) +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank()
  )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2 r-sf

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

如何在R中对一个平面列联表进行子集而不会丢失行和列名称?

我正在使用ftable创建一个平坦的列联表.但是,当我对列联表进行子集化时,R会删除行名和列名.有没有办法对表进行子集,使行和列名保留在子集表中?这是一个例子:

# Create fake data
Group1 = sample(LETTERS[1:3], 20, replace=TRUE)
Group2 = sample(letters[1:3], 20, replace=TRUE)
Year = sample(c("2010","2011","2012"), 20, replace=TRUE)
df1 = data.frame(Group1, Group2, Year)

# Create flat contingency table with column margin
table1 = ftable(addmargins(table(df1$Group1, df1$Group2, df1$Year), margin=3))

# Select rows with sum greater than 2
table2 = table1[table1[ ,4] > 2, ]

> table1
     2010 2011 2012 Sum

A a     0    1    2   3
  b     2    1    0   3
  c     0    0    0   0
B a     0    1 …
Run Code Online (Sandbox Code Playgroud)

formatting r subset

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

如何使用ggplot绘制色轮?

我正在阅读"ggplot2 - 用于数据分析的优雅图形"一书(Wickham,2009),"Scaling"一节(第32页)说:

然后缩放涉及将数据值映射到此空间中的点.有很多方法可以做到这一点,但是由于cyl是一个分类变量,我们将值映射到色轮上均匀分布的色调,如图3.4所示.当变量是连续的时,使用不同的映射.这些转换的结果是表3.4,其中包含对计算机有意义的值.

在此输入图像描述

在此输入图像描述

这本书没有详细解释如何获得这个表3.4,更不用说3.4了.内置数据库是mpg.任何人都知道如何获得此表格和图表?提前致谢.

graphics r colors ggplot2

9
推荐指数
2
解决办法
3245
查看次数

ggplot2:如何交换y轴和右小平面条以及如何排序小平面值

使用以下代码:

library(ggplot2)
set.seed(6809)
diamonds <- diamonds[sample(nrow(diamonds), 1000), ]
diamonds$cut <- factor(diamonds$cut,
         levels = c("Ideal", "Very Good", "Fair", "Good", "Premium"))

# Repeat first example with new order
p <- ggplot(diamonds, aes(carat, ..density..)) +
        geom_histogram(binwidth = 1)
p + facet_grid(color ~ cut)
Run Code Online (Sandbox Code Playgroud)

我可以创建下图:

在此输入图像描述

我的问题是:

  1. 如何根据我想要的顺序对正确的条排序,例如(G,F,D,E,I,J,H)?
  2. 如何将正确的条带与y轴(密度)交换?

r ggplot2

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

如何在R中绘制具有多个分类变量的平行坐标

使用ggparcoordGGally包中的绘制平行坐标图时,我遇到了困难.由于有两个分类变量,我想在可视化中显示的内容如下图所示.我发现,在ggparcoord,groupColumn只允许一个单一的变量由组(颜色),且可靠地我可以使用showPoints标记在轴上的值,但我还需要改变这些标记物的形状根据分类变量.还有其他包可以帮助我实现我的想法吗?

任何回复将不胜感激!谢谢!

大学和国家分为两类

visualization r ggplot2 categorical-data ggally

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

如果只有一个绘图有轴标签,如何创建多个绘图,每个绘图具有相同的绘图区域大小?

我想在1x3布局中绘制三个图形.只有第一个图形需要有垂直轴标签,但我希望所有三个绘图区域的大小完全相同.如果没有或所有图表都有轴标签,这将没有问题.但是,当一个有轴标签而另外两个没有时,如何让所有三个图形大小相同?我试图在基本图形中执行此操作,因为这是我最熟悉的,但如果它们提供更好的方法来解决我的问题,我会很乐意使用grid或ggplot2.

这是一些假数据,我的绘图代码和情节本身:

# Fake Data
data = structure(list(y1 = 1:5, y2 = c(1.2, 2.4, 3.6, 4.8, 6), y3 = c(1.44, 
2.88, 4.32, 5.76, 7.2)), .Names = c("y1", "y2", "y3"), 
row.names = c("I needed 12 units for financial aid", 
              "I couldn't find any other open classes",
              "I might be adding a major or minor", 
              "The class seemed interesting", "The class fit into my schedule"
), class = "data.frame")

# Plotting code
par(mar=c(5,15,4,1))
par(mfrow=c(1,3))
barplot(data$y1,names.arg=row.names(data), horiz=TRUE,las=1, +
        xlim=c(0,8), main="Group 1")
par(mar=c(5,1,4,1))
barplot(data$y2,names.arg=row.names(data), …
Run Code Online (Sandbox Code Playgroud)

graphics layout plot r

8
推荐指数
3
解决办法
9057
查看次数

如何将字符串向量转换为Title Case

我有一个小写的字符串向量.我想将它们改为标题案例,这意味着每个单词的第一个字母都会被大写.我已经设法用一个双循环来做,但我希望有一个更有效和优雅的方式来做到这一点,也许是一个单行gsub和一个正则表达式.

这里有一些示例数据,以及有效的双循环,其次是我尝试过的其他不起作用的东西.

strings = c("first phrase", "another phrase to convert",
            "and here's another one", "last-one")

# For each string in the strings vector, find the position of each 
#  instance of a space followed by a letter
matches = gregexpr("\\b[a-z]+", strings) 

# For each string in the strings vector, convert the first letter 
#  of each word to upper case
for (i in 1:length(strings)) {

  # Extract the position of each regex match for the string in row …
Run Code Online (Sandbox Code Playgroud)

regex replace r

8
推荐指数
3
解决办法
6908
查看次数

在rCharts中为Sankey图添加颜色

我在rCharts中创建了一个sankey图,但有一个问题.如何添加颜色?我想用不同的颜色来表示每个节点,这样就可以更容易地对路径进行虚拟化,而不是仅仅看到连接所有内容的相同灰线.代码和输出如下:

    require(rCharts)
    require(rjson)

    x = read.csv('/Users/<username>/sankey.csv', header=FALSE)

    colnames(x) <- c("source", "target", "value")

    sankeyPlot <- rCharts$new()

    sankeyPlot$set(
     data = x,
     nodeWidth = 15,
     nodePadding = 10,
     layout = 32,
     width = 500,
     height = 300,
     units = "TWh",
     title = "Sankey Diagram"
    )

    sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey')

    sankeyPlot
Run Code Online (Sandbox Code Playgroud)

这是我的图表的样子

在此输入图像描述

非常感谢!

r rcharts sankey-diagram

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