我理解上有困难%in%.在第5.2.2节的Hadley Wickham的书"R for data science"中,它说:"这个问题的一个有用的简写就是x %in% y.这将选择x是y中的一个值的每一行." 然后给出了这个例子:
nov_dec <- filter(flights, month %in% c(11, 12))
Run Code Online (Sandbox Code Playgroud)
但是,当我查看语法时,它似乎应该选择每一行,其中y是x中的一个值(?)所以在示例中,所有情况11和12(y)出现在"月"中" (X).
?"%in%"不会让我更清楚.显然我错过了一些东西,但有人可以详细说明这个功能是如何工作的吗?
我有一个泛型函数,我想从中获取三个值。但是,它仅返回“返回”功能中的值之一。我的代码结构如下:
doEverythingFunction <- function(x){
"do some esoteric calculations here"
return(valueX)
"do some more esoteric calculations here"
return(valueY)
"do even more esoteric calculations here"
return(valueZ)
}
Run Code Online (Sandbox Code Playgroud)
此函数仅返回Z值,而不返回X和Y。如何获取所有三个值?
可能这个问题的解决方案很容易,但我看不到它.这是我的示例数据框:
df <- data.frame(id=c(1,1,1,2,2,2), value=rep(1:3,2), level=rep(letters[1:3],2))
df[6,2] <- NA
Run Code Online (Sandbox Code Playgroud)
这是我想要创建的所需输出:
df$new_value <- c(3,2,1,NA,2,1)
Run Code Online (Sandbox Code Playgroud)
因此,所有列的顺序都相同,对于new_value列,value列顺序在列的每个级别内反转id.有任何想法吗?谢谢!
我正在尝试将一些当前设置为数字的日期转换为日期类。例如19870101
例如:
> as.Date.numeric(19870101, origin = "1970-01-01")
[1] "56417-06-28"
Run Code Online (Sandbox Code Playgroud)
为什么这不返回正确的日期,应该是"1987-01-01". 有谁知道我在这里做错了什么,起源论点错了吗?
有任何想法吗?谢谢!
您有一个由三个变量组成的实验,我想将它们全部绘制在一个图上.
这是我的df:
AB <- data.frame(block=c("A", "A", "A", "A", "B", "B", "B", "B" ),
familiarity=c("fam", "fam", "unfam", "unfam" ),
prime=c("P", "UP" ),
RT=c("570.6929", "628.7446", "644.6268", "607.4312", "556.3581", "645.4821", "623.5624", "604.4113"))
Run Code Online (Sandbox Code Playgroud)
现在我只能将其中一个变量分成两个独立的图,如下所示,其中A和B是第三个变量的两个级别:
A <- AB[which(AB$block == "A"),]
B <- AB[which(AB$block == "B"),]
pa <- ggplot(data=A, aes(x=prime, y=RT, group=familiarity)) +
geom_line(aes(linetype=familiarity), size=1) +
expand_limits(y=c(500,650))
pb <- ggplot(data=B, aes(x=prime, y=RT, group=familiarity)) +
geom_line(aes(linetype=familiarity), size=1) +
expand_limits(y=c(500,650))
Run Code Online (Sandbox Code Playgroud)
我想在图B上叠加图A,并用颜色识别第三个变量.
有任何想法吗?