我的任务是将列名和组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重绘维恩图的最简单方法是什么?我没有用于生成维恩图的数据,但其余的图是用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) 我遇到一个奇怪的问题,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) 如何在连续渐变颜色条周围添加边框.默认情况下,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) 像内置函数一样显示函数内部环境名称的方法是什么?例如,当我输入函数:在基础包中可用时,我可以将环境视为"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环境之间是否存在搜索()
任何关于这种行为背后的动机的指针都将受到高度赞赏.
谢谢
我想在轴标题旁边添加图例.我按照这个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) 我想绘制从参考点'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) 我想在 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 参数)
有没有一种简单的方法可以在根处合并多个 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) stop函数中.call参数的用途是什么?
帮助页面(?stop)解释了"call.logical",指示调用是否应该成为错误消息的一部分."
有人可以通过一个直观的例子解释.call参数吗?
谢谢
r ×10
ggplot2 ×4
data.table ×2
dendrogram ×1
function ×1
hclust ×1
pheatmap ×1
posixct ×1
venn-diagram ×1