我需要对数据框进行子集化.我需要每5分钟为每列包含大于95百分位数的值.
我的数据框是:
dput(t)
structure(list(Date = structure(c(1468814400, 1468814700, 1468815000,
1468815300, 1468815600, 1468815900, 1468816200, 1468816800, 1468817400,
1468817700, 1468818000, 1468818300, 1468818600, 1468818900, 1468819200,
1468819500, 1468819800, 1468820100, 1468820400, 1468820700, 1468821000,
1468821300, 1468821600, 1468821900, 1468822200, 1468822500, 1468822800,
1468823100, 1468823400, 1468823700), class = c("POSIXct", "POSIXt"
), tzone = ""), CPU = c(6.09, 4.96, 8.61, 1.07, 5.13, 9.7, 1.97,
4.39, 3.25, 13.5, 1.86, 3.79, 4, 2.68, 8.71, 1.99, 14, 2.96,
2.75, 15.38, 7.97, 4.41, 5.08, 16.26, 12.19, 7.05, 6.97, 17.78,
17.57, 7.23), Trans_A = c(35, 32, 18, …
Run Code Online (Sandbox Code Playgroud) 如何使用 dplyr 反转数据框/tibble 的行?我不想按某个变量来排列它,而是将其颠倒过来。
即小标题
# A tibble: 5 x 2
a b
<int> <chr>
1 1 one
2 2 two
3 3 three
4 4 four
5 5 five
Run Code Online (Sandbox Code Playgroud)
应该成为
# A tibble: 5 x 2
a b
<int> <chr>
1 5 five
2 4 four
3 3 three
4 2 two
5 1 one
Run Code Online (Sandbox Code Playgroud) 我有一个包含多年作为变量标题的数据框,其格式为:Y_1998、Y_1999 等,直至 2018 年。有什么方法可以在一行代码中重命名所有这些列,而不是对每个列使用重命名函数多变的?
Names <- c("SUSAN,ALTOP","Brent,SPINER","KIM,YAMAGUCHI","John,McMurphy","Kevin,Y")
City <- c("Toronto","New York","Chicago","Toronto","Tokyo")
DF <- data.frame(Names,City)
Run Code Online (Sandbox Code Playgroud)
我希望创建一个函数,该函数将在上面的简单示例数据框中使用大写的名字和姓氏,以便将名字读为“ Susan Altop”,“ Brent Spiner” ...等。(请注意,我也删除了逗号。)
我可以分别使用以下代码或通过管道使用以下代码来完成此操作。但是我希望创建一个函数,因为我必须做很多次,但是我不确定在使用dplyr,tidyr等时该如何做。我也愿意接受使用列表的更具创意的建议和purrr,如果可能的话。
DF <- DF %>% separate(DF,Names,c("First","Last",sep=","),remove=TRUE)
DF <- DF %>% mutate_each(funs(tolower),First,Last)
DF <- DF %>% mutate_each(funs(Capitalize),First,Last)
DF <- DF %>% mutate(NewNames=paste0(First," ",Last)
Run Code Online (Sandbox Code Playgroud) 这是我的例子
library('dplyr')
a <- c(0.2,1.3)
df_test <- data.frame(a)
df_test %>% mutate(a =round(a,0))
Run Code Online (Sandbox Code Playgroud)
它产生:
a
1 0
2 1
Run Code Online (Sandbox Code Playgroud)
,但不会更改原始数据帧df_test
.如何将mutate的结果分配给同一数据帧?
我已根据各种条件创建了多个数据帧.现在我想对不同的数据帧进行采样,但是我想在采样后删除它们.我试过dplyrs sample_n:
sample_n(df, 4)
Run Code Online (Sandbox Code Playgroud)
问题是这不会删除行,我是否需要一些递归循环,一旦它们被采样将删除行?或者是否有一些方便的功能可以帮助我?
我对dplyr包中的sample_n命令(对于 replace=TRUE 情况)的逻辑感到困惑。我正在使用sample_n但我无法弄清楚我的样本是如何复制的,它背后的逻辑是什么?
当我查看采样数据时,变量之间的分数或特定比率不守恒。
你好,我有两个清单:
list1<-c("A","B")
list2<-c(1,2,3)
Run Code Online (Sandbox Code Playgroud)
我想获得所有可能的组合并将其保存到数据框中,例如:
带有一个名为的列Possibilities
,它指的是可能性的名称。
list1 list2 Possibilities
A 1 P1
B 1 P1
A 2 P2
B 2 P2
A 3 P3
B 3 P3
A 1 P4
B 2 P4
A 2 P5
B 1 P5
A 3 P6
B 1 P6
A 1 P7
B 3 P7
A 2 P8
B 3 P8
A 3 P9
B 2 P9
Run Code Online (Sandbox Code Playgroud)
解决方案 :
> expand.grid(list1,list2)
Run Code Online (Sandbox Code Playgroud)
不是我想要的,因为它给出了:
Var1 Var2
1 A 1
2 B 1
3 A 2 …
Run Code Online (Sandbox Code Playgroud) 我有两个这样的数据框:
set.seed(1)
df1 <- data.frame(v1 = rnorm(7),
v2 = c("a1", NA, "a2", "a3", "a5", "a6", "a9"))
> df1
v1 v2
1 0.39956187 a1
2 0.33711756 <NA>
3 -0.19583763 a2
4 0.04880812 a3
5 -2.07266374 a5
6 -0.83824743 a6
7 1.31302096 a9
df2 <- data.frame(pc1 = rnorm(5),
pc2 = rnorm(5))
rownames(df2) <- c("a1", "a2", "a3", "a6", "a9")
> df2
pc1 pc2
a1 -0.89865755 -0.32949632
a2 -0.05709327 -0.06923935
a3 -0.44229588 0.32089049
a6 -1.51754734 -0.34285758
a9 0.99955141 -0.62749542
Run Code Online (Sandbox Code Playgroud)
df1
有一列v2
包含与rownames匹配的字符值df2 …
我最近看过这样的代码:
library(dplyr)
mtcars %.% mutate(carb_10 = carb %/% 10)
Run Code Online (Sandbox Code Playgroud)
还有这个....
mtcars %.% mutate(carb_10 = carb %% 10)
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释上面的代码中%/%和%%做了什么?
我有一个函数,其中x介于0和1之间:
如何%>%
从dplyr
包中使用链式操作符来执行此操作?
我尝试了以下方法:
x = 0.5
y <- (x-1)^2 %>% 1-. %>% sqrt()
Run Code Online (Sandbox Code Playgroud)
但这是错的!如何找到链操作员自行计算的方法?我在这里做了一个小例子.我有一个很长的等式,并希望使用链式运算符使代码可读.