在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) 我想知道如何分割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) 向量a和b可以使用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) 我有一组字符向量:
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"以实现所需的输出。因此,这不是一个通用的解决方案。
假设我们有一些如下所示的二元素字符串向量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) 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)