小编Sim*_*mel的帖子

如何在 R 中进行嵌套子集设置

DATA下面的内容中,我尝试使用包含和的 sfilter以及包含.DistrictStatusMonitorNeverNo Answer

然后,在每个Districts 中,我只想要is或和is 的filter行。StatusMonitorNeverAnswerNo

所需的输出应该只是第一行、第三行、第十行和最后一行(见下文)。这可能吗?

我尝试了以下操作(没有成功):

library(dplyr)
  group_by(DATA, District) %>% 
  filter(Status %in% c("Monitor","Never")  & Answer == "No") %>% 
  ungroup()
Run Code Online (Sandbox Code Playgroud)
DATA <- read.table(h=T, text="
District  Status   Answer
A         Monitor  No    #--> Filter this row
A         Never    Yes
A         Never    No    #--> Filter this row
A         Ever     No
B         Never    Yes
B         Never    No
B         Never    No
C         Former   No …
Run Code Online (Sandbox Code Playgroud)

r subset dataframe dplyr tidyverse

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

将 data.frame 拆分为包含一对的较小 data.frame 的列表

我想知道如何分割data下面的数据,以便我得到一个较小的 dataf.rames 列表,每个数据帧type中都包含一对唯一的?

我的desired_output如下所示。

请注意,这只是一个玩具数据,因此type可以是任何其他变量。另请注意,如果某个特定项type只有一行(例如type == 4),我想通过警告排除它:

type 4 has just one row thus is excluded.

m=
"
  obs   type
    1   1
    2   1
    3   a
    4   a
    5   3
    6   3
    7   4
"
data <- read.table(text = m, h=T)


desired_output <-list(
  
  data.frame(obs=1:4,   type=c(1,1,"a","a")),
  
  data.frame(obs=c(1,2,5,6),   type=c(1,1,3,3)),
  
  data.frame(obs=3:6,   type=c("a","a",3,3))
)

# warning: type 4 has just one row thus is excluded.
Run Code Online (Sandbox Code Playgroud)

r function dataframe dplyr tidyverse

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

缩短 R 中的长向量

向量ab可以使用toString(width = 10)Base R 进行缩短,从而得到一个以....

但是,我想知道如何使缩短的向量以 结尾..., last vector element

我的desired_output如下所示。

a <- 1:26
b <- LETTERS  

toString(a, width = 10)
# [1] "1,2,...."
desired_output1 = "1,2,...,26"

toString(b, width = 10)
# [1] "A,B,...."
desired_output2 = "A,B,...,Z"

Run Code Online (Sandbox Code Playgroud)

string r vector

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

从向量中提取字符元素

我有一组字符向量:

a <- "bmi + ch | study"
b <- "bmi * ch | study"
c <- "bmi * ch - 1 | study"
d <- "bmi * ch + 0 | study"
e <- "bmi:ch + 0 | study"
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想提取两个字符串"bmi""ch",即所需的输出是c("bmi", "ch")

上面的字符串只是示例;要提取的字符元素可以是ch和之外的任何其他元素bmi。我正在寻找一个通用的解决方案,无需硬编码。

我努力了unlist(stringr::str_extract_all(a, "bmi|ch"))。但是,在这里我手动定义模式"bmi|ch"以实现所需的输出。因此,这不是一个通用的解决方案。

regex string r character

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

将向量元素重新排序为 R 中的第二个元素

假设我们有一些如下所示的二元素字符串向量A, B, C, ...。我们只知道保存为 object 的元素之一second

有没有办法使second始终成为 中的第二个元素A, B, C, ...

A = c("time","prof") # --> must become `c("prof", "time")`

B = c("prof", "time") # --> remains Unchanged

C = c("time","ziba") # --> must become `c("ziba", "time")`

second = "time"
Run Code Online (Sandbox Code Playgroud)

string r function vector

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

修改 R 包中函数中的三行代码

Effect.lm()R 包中的函数effects有一个 bug,可以通过添加 3 行代码来解决。

Effect.lm()我有下面的解决方案,但是有没有办法从 R 包实现此更改effects

我打算间接使用Effect.lm()(通过另一个函数),并且更改必须可由其他用户复制。

附:我认为这个答案可能是相关的。不幸的是,正如他提到的,@Ben Bolker 的答案(他的 R 代码)并没有实现我上面的目标。

library(effects)

# Delete line 164 in the following
View(effects::Effect.lm)

# Then, in its place, add the following 3 lines

  use <- !is.na(mod$coefficients)     # new
  mmat <- mod.matrix[, use]           # new
  if (any(is.na(V))) V <- V[use, use] # new
Run Code Online (Sandbox Code Playgroud)

r function package

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

标签 统计

r ×6

function ×3

string ×3

dataframe ×2

dplyr ×2

tidyverse ×2

vector ×2

character ×1

package ×1

regex ×1

subset ×1