我想用我的数据集中的一堆独立变量运行回归.有很多预测因子,所以我不想全部写出来.是否有跨多个列的符号,所以我不必键入每个列?
我的尝试是这样做的(我的预测者是第20至43栏):
modelAllHexSubscales = lm(HHdata$garisktot~HHdata[,20:43])
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用,因为HHdata[,20:43]是一个数据矩阵,而我真的需要它来看数据HHdata[,20]+HHdata[,21]等.
假设我有一个多维数组pi,并且在运行时之前它的维数是未知的:
dims <- rep(3, dim_count)
pi <- array(0, dims)
Run Code Online (Sandbox Code Playgroud)
如您所见,尺寸计数取决于dim_count.当我有索引向量时,如何从数组中检索值?例如,当我有:
dim_count <- 5
indexes <- c(1, 2, 3, 3, 3)
Run Code Online (Sandbox Code Playgroud)
我想要检索
pi[1, 2, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)
有这么简短,有效且有希望的优雅方式吗?
我试图得到一个数据框(just.samples.with.shoulder.values比方说)只包含非NA值的样本.我试图用这个complete.cases函数来完成这个,但我想我在语法上做了一些错误:
data <- structure(list(Sample = 1:14, Head = c(1L, 0L, NA, 1L, 1L, 1L,
0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L), Shoulders = c(13L, 14L, NA,
18L, 10L, 24L, 53L, NA, 86L, 9L, 65L, 87L, 54L, 36L), Knees = c(1L,
1L, NA, 1L, 1L, 2L, 3L, 2L, 1L, NA, 2L, 3L, 4L, 3L), Toes = c(324L,
5L, NA, NA, 5L, 67L, 785L, 42562L, 554L, 456L, 7L, NA, 54L, NA
)), .Names = c("Sample", …Run Code Online (Sandbox Code Playgroud) 我是R的新手,请原谅我提出一个可能很愚蠢的问题.
我有一个多列CSV(以逗号分隔,没有引号)文件,其中第一行是标题,第一列是连续的整数索引,其他17列是函数的浮点值.
任务是在同一图表上绘制所有17条线(使用相同的轴).
听起来很简单但实际上并不是很明显.
我有一个公式,其中包含一些术语和一个数据框(早期model.frame()调用的输出),其中包含所有这些术语等等.我想要模型框架的子集,其中只包含公式中出现的变量.
ff <- log(Reaction) ~ log(1+Days) + x + y
fr <- data.frame(`log(Reaction)`=1:4,
`log(1+Days)`=1:4,
x=1:4,
y=1:4,
z=1:4,
check.names=FALSE)
Run Code Online (Sandbox Code Playgroud)
期望的结果是fr减去z列(fr[,1:4]是作弊 - 我需要一个程序化的解决方案......)
一些策略,不工作:
fr[all.vars(ff)]
## Error in `[.data.frame`(fr, all.vars(ff)) : undefined columns selected
Run Code Online (Sandbox Code Playgroud)
(因为all.vars()得到"Reaction",不是log("Reaction"))
stripwhite <- function(x) gsub("(^ +| +$)","",x)
vars <- stripwhite(unlist(strsplit(as.character(ff)[-1],"\\+")))
fr[vars]
## Error in `[.data.frame`(fr, vars) : undefined columns selected
Run Code Online (Sandbox Code Playgroud)
(因为分裂是+虚假的分裂log(1+Days)术语).
我一直在考虑走下公式的解析树:
ff[[3]] ## log(1 + Days) + …Run Code Online (Sandbox Code Playgroud) 在R中,该get(s)函数检索其名称存储在字符变量(向量)中的符号的值s,例如
X <- 10
r <- "XVI"
s <- substr(r,1,1) ## "X"
get(s) ## 10
Run Code Online (Sandbox Code Playgroud)
采用罗马数字的第一个符号r并将其转换为等价的整数.
尽管花了一些时间来浏览R-Python词典和谷歌搜索"元编程","语言编程","符号","字符串"等各种组合,我还没有想出任何东西.(我是一位非常有经验的R用户和新手Python用户.)
(我知道上面的例子是一个(非常!)很难解决这个问题的方法.我对这个问题的一般答案很感兴趣,而不是专门将罗马数字转换为整数......)
我有一个数据框,数据框已按需要排序,但现在我想在组中"切片".
此组的最大累计值应为10.当累计值> 10时,它应重置累计总和并重新开始
library(dplyr)
id <- sample(1:15)
order <- 1:15
value <- c(4, 5, 7, 3, 8, 1, 2, 5, 3, 6, 2, 6, 3, 1, 4)
df <- data.frame(id, order, value)
df
Run Code Online (Sandbox Code Playgroud)
这是我正在寻找的输出(我是"手动"完成的)
cumsum_10 <- c(4, 9, 7, 10, 8, 9, 2, 7, 10, 6, 8, 6, 9, 10, 4)
group_10 <- c(1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7)
df1 <- data.frame(df, cumsum_10, group_10)
df1
Run Code Online (Sandbox Code Playgroud)
所以我遇到了两个问题
对于第一部分,我尝试了group_by和cumsum的一些组合而没有运气
df1 <- …Run Code Online (Sandbox Code Playgroud) 所以我有这个R脚本可以生成带有每个点标签的散点图.是这样的:
img1<-"http://blog.gettyimages.com/wp-content/uploads/2013/01/Siberian-Tiger-Running-Through-Snow-Tom-Brakefield-Getty-Images-200353826-001-628x419.jpg"
img2<-"http://blog.gettyimages.com/wp-content/uploads/2013/01/Hurricane-Sandy-Andrew-Burton-Getty-Images-154986556.jpg"
imgdata<-data.frame(c(img1,img2,img1,img2,img1,img2,img1,img2,img1,img2))
colnames(imgdata)<-"images"
txtdata<-data.frame(c("A","B","C","D","E","F","G","H","I","J"))
plotdata<-data.frame(seq(1:10),seq(11:20),txtdata,imgdata)
colnames(plotdata)<-c("var1","var2","texts","images")
ggplot(data=plotdata, aes(plotdata[,1],plotdata[,2])) +
geom_point(data=plotdata, aes(plotdata[,1],plotdata[,2])) +
geom_text(aes(label=plotdata$points,size=2, hjust=2))
Run Code Online (Sandbox Code Playgroud)
这给出了散点图,其中每个点标记为"A","B","C"......等.
我想要做的几乎是相同的,除了文本之外,我想用图像在向量或数据框的链接中标记每个点(在本例中为"imgdata").请注意,我选择这些图像只是作为例子; 我有更多,所以我无法手动下载它们.
我有一个如下所示的数据框:
a b
1 x 8
2 x 6
3 y 3
4 y 4
5 z 5
6 z 6
Run Code Online (Sandbox Code Playgroud)
我想把它变成这个:
x y z
1 8 3 5
2 6 4 6
Run Code Online (Sandbox Code Playgroud)
但是打电话
library(tidyr)
df <- data.frame(
a = c("x", "x", "y", "y", "z", "z"),
b = c(8, 6, 3, 4, 5, 6)
)
df %>% spread(a, b)
Run Code Online (Sandbox Code Playgroud)
回报
x y z
1 8 NA NA
2 6 NA NA
3 NA 3 NA
4 NA 4 NA
5 …Run Code Online (Sandbox Code Playgroud) 我如何申请geom_smooth()每个团体?
下面的代码使用facet_wrap(),因此在单独的图中绘制每个组.
我想整合图表,并获得一个图表.
ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_point(aes(color = Species)) +
geom_smooth(method = "nls", formula = y ~ a * x + b, se = F,
method.args = list(start = list(a = 0.1, b = 0.1))) +
facet_wrap(~ Species)
Run Code Online (Sandbox Code Playgroud)