我不熟悉applyR 中的。当我尝试仅返回函数的一个值时,它无法返回该值。这个问题可能很容易解决,但我还没有解决。
例如,当我尝试使用函数sens.slope(From package trend) 时,它不会只返回一个数值。
> e <- matrix(1:50, nrow = 5)
> apply(e,2, sens.slope$estimates)
Error in sens.slope$estimates :
object of type 'closure' is not subsettable
Run Code Online (Sandbox Code Playgroud)
还有其他解决方案吗?谢谢你!
假设我有一个包含任意数量的行和列的数据集,如下所示。
tmp <- tibble(id = 1:10,
v1 = c(0, 0, 0, 1, 1, 0, 0, 0, 0, 1),
v2 = c(0, 0, 0, 1, 0, 0, 0, 0, 0, 1),
v3 = c(0, 0, 0, 1, 0, 0, 0, 0, 1, 0),
v4 = c(0, 0, 0, 1, 1, 0, 0, 0, 1, 0))
Run Code Online (Sandbox Code Playgroud)
每一行都是一个响应。受访者对特定问题的回答是是 (1) 或否 (0)。在这里,我们有 4 个问题。
将其转换为如下所示的一致性矩阵的最简单方法是什么:
v1 v2 v3 v4
v1 3 2 1 1
v2 2 2 1 1
v3 1 1 2 2 …Run Code Online (Sandbox Code Playgroud) 我已经习惯了,如果我想给a添加一个点ggplot,它就可以了:
ggplot(mtcars, aes(x = disp, y = mpg)) + geom_point() +
geom_point(x = 200, y = 20, size = 5, color = "blue")
Run Code Online (Sandbox Code Playgroud)
但是,如果涉及POSIX日期,我会遇到问题:
dat_1 <- data.frame(time = as.POSIXct(c("2010-01-01", "2010-02-01", "2010-03-01")),
y_1 = c(-1, 0, 1))
Run Code Online (Sandbox Code Playgroud)
当然,基本情节有效
(my_plot <- ggplot(dat_1, aes(x = time, y = y_1)) +
geom_point())
Run Code Online (Sandbox Code Playgroud)
但添加另一层
my_plot + geom_point(x = as.POSIXct("2010-01-01"),
y = 0, size = 5, color = "blue")
Run Code Online (Sandbox Code Playgroud)
返回错误
Error in Ops.POSIXt((x - from[1]), diff(from)) :
'/' not defined for "POSIXt" objects
Run Code Online (Sandbox Code Playgroud) RStudio 中的“+”号是什么意思?大多数行以开头,>但其他行以开头+(我认为是继续行)。我正在阅读一本书,它在不同的行上为函数编写参数,但我不知道该怎么做。
或者有时我会看到类似的代码
> mtcars %>%
+ group_by(cyl) %>%
+ summarize(mean(mpg))
Run Code Online (Sandbox Code Playgroud) 这是我处理它的示例:
data2 = data.frame( X = c(0,2,4,6,8,10),
Y = c(300,220,210,90,80,10))
attach(data2)
model <- glm(log(Y)~X)
model
Call: glm(formula = log(Y) ~ X)
Coefficients:
(Intercept) X
6.0968 -0.2984
Degrees of Freedom: 5 Total (i.e. Null); 4 Residual
Null Deviance: 7.742
Residual Deviance: 1.509 AIC: 14.74
Run Code Online (Sandbox Code Playgroud)
我的问题是:
功能上有一个选项glm可以让我用我想要的值修复截距系数?并预测 x 值?
例如:我希望我的曲线以较高的“Y”值开始 ==> 我想改变截距 log(300)
我要求R制作一系列情节.但是,ggplot2分配给不同变量的颜色会因实际数据而异.我需要更多的一致性特别是我想:
四为红三为绿色两为黄色为白色
基于以前的答案,我怀疑我需要订购水平.有人可以帮我吗?
以下是一些示例数据:
df<-structure(list(`id` = structure(c(3L, 3L, 3L, 3L, 3L, 2L,
3L, 3L, 1L, 3L, 4L, 3L, 3L, 3L, 3L, 3L, 2L, 4L, 3L, 3L, 2L, 3L,
2L, 4L, 2L, 4L, 3L, 3L, 2L, 3L, 4L, 3L, 3L, 2L, 3L, 3L, 4L, 3L,
1L, 3L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("ONE",
"TWO", "THREE", "FOUR"), class = "factor"), NAME = c("0", "0.25", "0.5",
"0.75", "1", "1.25", "1.5", "1.75", "2", "2.25", "2.5", "2.75",
"3", …Run Code Online (Sandbox Code Playgroud) 我有一个巨大的data.table,我想绘制每组的直方图.在下面的例子中,我想说每个"线"有6个图(所以最后一行只有两个图,对于s和t组).
我该怎么做呢?
library(ggplot2)
library(data.table)
DT <- data.table(Group = rep(letters[1:20], each = 200),
Value = rnorm(4000))
hist.plot <- ggplot(DT, aes(x = Value)) +
geom_histogram(binwidth = 0.3, colour = 'black')
hist.plot + facet_grid(. ~ Group)
Run Code Online (Sandbox Code Playgroud)
我不是根据实际数据绘图,我只有一个data.frame,列出x,y值以及上下自信区间.我想用自信的间隔绘制线图.我想绘制如下的东西:
我怎么做?这是data.frame:
grp x y se conf.low conf.high
0 0 66.27373472086 1.51067072892736 63.3124335788501 69.2350358628699
1 0 74.2148696059611 1.40010518400934 71.4703052207858 76.9594339911364
0 0.67 69.3077020704515 1.31170050247573 66.7364334799 71.8789706610029
1 0.67 76.3216788839049 1.20426555957627 73.9610102692502 78.6823474985597
0 1 70.8020441978622 1.22261128345911 68.4054132705439 73.1986751251804
1 1 77.3593610655788 1.11440617937562 75.1748398271279 79.5438823040297
0 1.33 72.2963863252729 1.1412866614517 70.0591724644355 74.5336001861103
1 1.33 78.3970432472526 1.03045308168746 76.3770915601266 80.4169949343786
0 1.67 73.8360115474536 1.06749385699758 71.7434504636362 75.9285726312711
1 1.67 79.4661703435226 0.951785143725553 77.6004279424212 81.331912744624
0 2 75.3303536748644 1.00766551737773 73.3550714441075 77.3056359056212
1 2 80.5038525251965 0.885018762433004 78.7689893139698 82.2387157364231 …Run Code Online (Sandbox Code Playgroud) 想知道是否geom_text适用hist?尝试了以下代码,似乎没有效果。在为每个直方图桶绘制每个条时,我只想显示标签(属于特定直方图桶的元素数量)。任何解决方案表示赞赏。谢谢。
p <- hist(df$foo,
main="title",xlab="foo")
p + geom_text()
Run Code Online (Sandbox Code Playgroud)
编辑 1,试过geom_bar,这是我的代码,它似乎工作不正常,因为我希望每个条上都标有一个数字。在图中,它只显示 2.5、5、7.5 和 10,我希望为每个条显示 1、2、3、...、9、10。
g <- ggplot(df, aes(df$foo))
g + geom_bar()
Run Code Online (Sandbox Code Playgroud)
问候, 林
我有一堆Rcpp代码,我必须重写为一个无Rcpp的C/C++扩展(由于它的许可证),幸运的是它并没有像我担心的那样痛苦.但为了编写最干净的代码,我想确保我不会过度使用PROTECT/UNPROTECT.在写作R附加文档提到:"这不是一个好主意,然后只在PROTECT眼前的一切......"所以我想是尽职尽责的.
所以这是我想检查的事情.在阅读为R编写C扩展的所有示例时,我已经看到许多示例,其中作者保护传递函数的参数,如本文所述.
#include <R.h>
#include <Rdefines.h>
#include <string.h>
SEXP helloC1(SEXP greeting) {
int i, vectorLength, stringLength;
SEXP result;
PROTECT(greeting = AS_CHARACTER(greeting));
vectorLength = LENGTH(greeting);
PROTECT(result = NEW_INTEGER(vectorLength));
for (i=0; i<vectorLength; i++) {
stringLength = strlen(CHAR(STRING_ELT(greeting, i)));
INTEGER(result)[i] = stringLength;
}
UNPROTECT(2);
return(result);
}
Run Code Online (Sandbox Code Playgroud)
SEXP问候作为一个论点传入,作者立即保护它.但是,从Writing R Extensions中我注意到了这一点:
对于R已经知道正在使用的对象,不需要保护.特别是,这适用于函数参数.
因此,为了进行健全性检查,有人可以告诉我,作者保护传入参数的代码示例是否可以减少?如果是这种情况,我将能够使我的代码更清洁.
r ×10
ggplot2 ×5
apply ×1
c ×1
coefficients ×1
data.table ×1
glm ×1
histogram ×1
intercept ×1
return-value ×1
rstudio ×1
tidyverse ×1