小编Sat*_*ish的帖子

如何在环境中使用数据表的set函数

我的任务是将列名和组ID分配给环境中的数据.

我有两个案例.第一个使用data.frame()和在case-2中创建数据,使用创建数据data.table().

第一种情况是显示错误,但第二种情况非常有效.为什么错误发生在case-1中,而不是在case-2中?有没有更好的方法data.table在环境中使用set函数?

library('data.table')
Run Code Online (Sandbox Code Playgroud)

情况1:

my_env <- new.env()
my_env$d1 <- data.frame(a = 1:5, b = 1:5)
my_env$d2 <- data.frame(a = 1:5, b = 1:5)
my_env$d3 <- data.frame(a = 1:5, b = 1:5)

# set column names and value as group id
for(i in ls(my_env)){
  with(my_env, setDT(get(i))) # convert to data table by reference
  with(my_env, setnames( x = get(i), c('x', 'y')))  # assign column name by reference
  with(my_env, set( x = get(i), j = 'group', …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

重绘维恩图

使用R重绘维恩图的最简单方法是什么?我没有用于生成维恩图的数据,但其余的图是用R绘制的...我想保持相同的结构,这意味着我必须以某种方式在R中重绘它.

你知道最简单的方法是什么吗? 这是我必须在R中创建的维恩图

这是我用于其他维恩图的代码.

v1 <- venn.diagram(list(1=a, 2=b, 3=c, 4=d), filename=NULL, fill=rainbow(4), cex.prop=NULL, cex=1.5)
png("TEST.png", width=7, height=7, units='in', res=150)
grid.newpage()
grid.draw(v1)
dev.off()
Run Code Online (Sandbox Code Playgroud)

r venn-diagram

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

R data.table函数无法识别已指定的参数

我遇到一个奇怪的问题,data.table如果函数在另一个函数中使用,函数不能识别明确定义的参数.

这是一个简单的例子:我在第一个函数时遇到错误testFun1,

Error in fun(value) : could not find function "fun"

但是,很明显有默认值fun.使用没有问题reshape2::dcast,请参阅testFun2.

testFun1 <- function(data, formula, fun = sum, value.var = "value") {
  data.table::dcast(data = data, formula = formula, fun.aggregate = fun,
                    value.var = "value")
}

testFun2 <- function(data, formula, fun = sum, value.var = "value") {
  reshape2::dcast(data = data, formula = formula, fun.aggregate = fun,
                    value.var = "value")
}

d <- data.table(x = c("a", "b"), y = c("c", "d"), …
Run Code Online (Sandbox Code Playgroud)

r function data.table

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

在热图的传奇连续渐变颜色条周围绘制边框

如何在连续渐变颜色条周围添加边框.默认情况下,ggplot会获取指定的填充颜色scale_fill_gradient.

最接近的答案,我发现这是一个,但它并没有帮助我完成这个任务.

我也用传奇键尝试了这个,但没有帮助我.

legend.key = element_rect(colour = "black", size = 4)
Run Code Online (Sandbox Code Playgroud)

请参阅下面的当前和预期图表.

数据:

df1 <- structure(list(go = structure(c(17L, 16L, 15L, 14L, 13L, 12L, 
                                       11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L, 17L, 16L, 15L, 
                                       14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L, 
                                       17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 
                                       3L, 2L, 1L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

R:功能 - 显示环境名称而不是该环境的内存地址?

像内置函数一样显示函数内部环境名称的方法是什么?例如,当我输入函数:在基础包中可用时,我可以将环境视为"namespace:base".

mean

   function (x, ...) 
   UseMethod("mean")
   <bytecode: 0x0547f17c>
   **<environment: namespace:base>**
Run Code Online (Sandbox Code Playgroud)

但是,当我将一个函数附加到新创建的环境时,这里要访问函数(f)中的自由变量(z)的值,它会自动驻留在.GlobalEnv环境中,并且环境的名称不会显示在功能,但可以看到(e1)环境的存储器地址"0x051abd60".

     e1 <- new.env()
     e1$z <- 10
     f <- function(x) {
           x + z 
      }
     environment(f) = e1
     f

               function(x) {
                    x + z 
               }
               **<environment: 0x051abd60>**
Run Code Online (Sandbox Code Playgroud)

为什么我会看到这种行为?为什么我不能在函数内部获取环境名称,就像R的内置函数以及各种R软件包中提供的函数一样?环境数据结构和.globalEnv环境之间是否存在搜索()

任何关于这种行为背后的动机的指针都将受到高度赞赏.

谢谢

r

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

ggplot2为facet plot中的两个Y轴添加单独的图例

我想在轴标题旁边添加图例.我按照这个stackoverflow的答案得到了情节.

如何在两个y轴上添加图例?.我想在左右Y轴上都有传奇.在下图中,右侧y轴缺少图例符号.

也可以为类似于图例中的符号的文本提供独特的颜色.

同时,如何将图例键符号旋转到垂直位置?

我到目前为止的代码:

## install ggplot2 as follows:
# install.packages("devtools")
# devtools::install_github("hadley/ggplot2")

packageVersion('ggplot2')
# [1] ‘2.2.0.9000’

packageVersion('data.table')
# [1] ‘1.9.7’

# libraries
library(ggplot2)
library(data.table)

# data
df1 <- structure(list(plate_num = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L,
                                    1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L), 
                      `Before Treatment` = c(662.253098499674, 684.416067929458, 688.284595300261, 
                                             692.532637075718, 728.988910632746, 684.708496732026, 
                                             703.390706806283, 673.920966688439, 644.945573770492, 504.423076923077, 
                                             580.263743455497, 580.563767168084, 689.6014445174, 804.740789473684, 
                                             815.792020928712, 789.234139960759, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

带错误条的ggplot发散线

我想绘制从参考点'a'到其他点(例如'b','c','d'等)的图形线,

数据:

df <- structure(list(value = c(1.40438297796257, 1.44036790976986, 
1.37704383251482, 1.45355096018748, 1.40847559339844, 1.38860635968641, 
1.43714387291229), group = c("a", "b", "c", "d", "e", "f", "g"
), low = c(1.38956448514689, 1.40198829989962, 1.33523395978584, 
1.42008027933896, 1.37516232159193, 1.34823916425279, 1.397985577859
), up = c(1.41920147077825, 1.4787475196401, 1.4188537052438, 
1.487021641036, 1.44178886520494, 1.42897355512002, 1.47630216796558
), sem = c(0.00757411399256711, 0.0120426947992103, 0.0137959906464809, 
0.00953361452671253, 0.00945315870421568, 0.0130586010600045, 
0.0124407008862053)), .Names = c("value", "group", "low", "up", 
"sem"), row.names = c(NA, -7L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

码:

library('ggplot2')
ggplot( df, aes( x = group, y = value, group = 1 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

在 ggplot2 中绘制白天(无日期)

我想在 ggplot2 中散点图一个数字向量与白天(%H:%M)的关系。

我明白那个

as.POSIXct(dat$daytime, format = "%H:%M")
Run Code Online (Sandbox Code Playgroud)

是格式化时间数据的方法,但输出向量仍将包含日期(今天的日期)。因此,轴刻度将包括日期(3 月 22 日)。

ggplot(dat, aes(x=as.POSIXct(dat$daytime, format = "%H:%M"), y=y, color=sex)) +
geom_point(shape=15,
position=position_jitter(width=0.5,height=0.5))
Run Code Online (Sandbox Code Playgroud)

绘图输出的图像

有没有办法完全摆脱日期,尤其是在情节轴上?(我在留言板上找到的所有信息似乎都是指旧版本的 ggplot,现在已经不存在 date_format 参数)

r ggplot2 posixct

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

合并多个 hclust 对象(或树状图)

有没有一种简单的方法可以在根处合并多个 hclust 对象(或树状图)?

我已经使示例尽可能完整来说明我的问题。

假设我想按区域对 USArrest 进行聚类,然后将所有 hclust 对象联合起来,将它们绘制在热图中。

USArrests
Northeast <- c("Connecticut", "Maine", "Massachusetts", "New Hampshire", "Rhode Island", 
"Vermont", "New Jersey", "New York", "Pennsylvania")
Midwest <-  c("Illinois", "Indiana", "Michigan", "Ohio",  "Wisconsin", 
    "Iowa", "Kansas", "Minnesota", "Missouri", "Nebraska", "North Dakota", 
    "South Dakota")
South <- c("Delaware", "Florida", "Georgia", "Maryland", "North Carolina", 
           "South Carolina", "Virginia", "West Virginia", 
           "Alabama", "Kentucky", "Mississippi", "Tennessee", "Arkansas", 
           "Louisiana", "Oklahoma", "Texas")
West <- c("Arizona", "Colorado", "Idaho", "Montana", "Nevada", "New Mexico", 
          "Utah", "Wyoming", "Alaska", "California", "Hawaii", "Oregon", "Washington")

h1 <- …
Run Code Online (Sandbox Code Playgroud)

r dendrogram hclust pheatmap

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

停止函数中的R.call参数

stop函数中.call参数的用途是什么?

帮助页面(?stop)解释了"call.logical",指示调用是否应该成为错误消息的一部分."

有人可以通过一个直观的例子解释.call参数吗?

谢谢

r

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

标签 统计

r ×10

ggplot2 ×4

data.table ×2

dendrogram ×1

function ×1

hclust ×1

pheatmap ×1

posixct ×1

venn-diagram ×1