小编ste*_*sou的帖子

理解%in%的解释时遇到麻烦

我理解上有困难%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%"不会让我更清楚.显然我错过了一些东西,但有人可以详细说明这个功能是如何工作的吗?

r subset tidyverse

3
推荐指数
1
解决办法
99
查看次数

从函数返回多个值

我有一个泛型函数,我想从中获取三个值。但是,它仅返回“返回”功能中的值之一。我的代码结构如下:

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。如何获取所有三个值?

r function

2
推荐指数
1
解决办法
9917
查看次数

对另一列的每个级别内的数据框中的单个列重新排序

可能这个问题的解决方案很容易,但我看不到它.这是我的示例数据框:

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.有任何想法吗?谢谢!

r dataframe

2
推荐指数
1
解决办法
69
查看次数

无法在 R 中将数字转换为日期

我正在尝试将一些当前设置为数字的日期转换为日期类。例如19870101

例如:

> as.Date.numeric(19870101, origin = "1970-01-01")
[1] "56417-06-28"
Run Code Online (Sandbox Code Playgroud)

为什么这不返回正确的日期,应该是"1987-01-01". 有谁知道我在这里做错了什么,起源论点错了吗?

有任何想法吗?谢谢!

datetime r date numeric

2
推荐指数
1
解决办法
82
查看次数

在ggplot2中的单个图上绘制3个变量

您有一个由三个变量组成的实验,我想将它们全部绘制在一个图上.

这是我的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,并用颜色识别第三个变量.

有任何想法吗?

plot r ggplot2

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

标签 统计

r ×5

dataframe ×1

date ×1

datetime ×1

function ×1

ggplot2 ×1

numeric ×1

plot ×1

subset ×1

tidyverse ×1