假设以下数据框,
head(df, 9)
Day variable value
1 2015-10-18 Number_Flows.minimum 401.0000
2 2015-10-18 Number_Flows.maximum 2068.0000
3 2015-10-18 Number_Flows.average 1578.9474
4 2015-10-18 Number_srcaddr.minimum 95.0000
5 2015-10-18 Number_srcaddr.maximum 292.0000
6 2015-10-18 Number_srcaddr.average 222.6316
7 2015-10-18 Number_dstaddr.minimum 65.0000
8 2015-10-18 Number_dstaddr.maximum 411.0000
9 2015-10-18 Number_dstaddr.average 202.5789
Run Code Online (Sandbox Code Playgroud)
我想要做的就是情节minimum,maximum,average每个Number_Flows,Number_srcaddr等我宁愿有条显示的价值,但我打开其他的方法为好,只要我得到(例如,对于贴在下面重复的例子)共22张图表(每天11张).
我尝试了各种各样的东西但没有运气
library(dplyr)
library(ggplot2)
ggplot(df %>% mutate(group = paste(Day, gsub('\\..*', '', variable), sep = '-')), aes(x = Day, y = value))+geom_bar(stat = 'identity')+facet_wrap(~group)
ggplot(df %>% mutate(group = paste(Day, …Run Code Online (Sandbox Code Playgroud) 我有一个具有以下结构的数据帧
test <- data.frame(col = c('a; ff; cc; rr;', 'rr; a; cc; e;'))
Run Code Online (Sandbox Code Playgroud)
现在我想从中创建一个数据帧,其中包含测试数据帧中每个唯一值的命名列.唯一值是以';'结尾的值 角色,从空间开始,不包括空间.然后,对于列中的每一行,我希望用1或0填充虚拟列.如下所示
data.frame(a = c(1,1), ff = c(1,0), cc = c(1,1), rr = c(1,0), e = c(0,1))
a ff cc rr e
1 1 1 1 1 0
2 1 0 1 1 1
Run Code Online (Sandbox Code Playgroud)
我尝试使用for循环和列中的唯一值创建一个df,但它变得很乱.我有一个可用的向量,包含列的唯一值.问题是如何创建1和0.我尝试了一些mutate_all()功能,grep()但这没用.
我有2个向量
x <- c(2,2,5)
y <- c(1,2)
Run Code Online (Sandbox Code Playgroud)
我想将向量的每个元素组合在一起得到
[1] 3 3 6 4 4 7
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我是新手.我有一个包含一列和多行的数据集.我想将此列转换为5列.例如,我的数据集如下所示:
Column
----
City
Nation
Area
Metro Area
Urban Area
Shanghai
China
24,000,000
1230040
4244234
New york
America
343423
23423434
343434
Etc
Run Code Online (Sandbox Code Playgroud)
输出应该如下所示
City | Nation | Area | Metro City | Urban Area
----- ------- ------ ------------ -----------
Shangai China 2400000 1230040 4244234
New york America 343423 23423434 343434
Run Code Online (Sandbox Code Playgroud)
数据集的前5行(City,Nation,Area等)需要是5列的名称,我希望在这5列下填充其余数据.请帮忙.
假设我有以下专栏
**CurrentStatus**
Current
NoChange
NoChange
NoChange
NoChange
Late
Run Code Online (Sandbox Code Playgroud)
我想改变它,以便如果值为"NoChange",则使用先前值.
我试过了:
myDF %>% mutate(CurrentStatus = ifelse(CurrentStatus == "NoChange", lag(CurrentStatus), CurrentStatus)
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用 - 我认为这是因为它进行了矢量化计算,因此它同时查看所有滞后.我需要它"向前滚动".我想知道在没有for循环的情况下,最有效的方法是什么.我特别想避免使用for循环,因为有些分组变量没有显示我需要注意.
谢谢!
我有一个包含7列的数据框(wc2):
cm5 cm10 cm15 cm20 cm25 cm30 run_time
1 0.1221060 0.1221060 0.1221060 0.1221060 0.1221060 0.1221060 0
2 0.4084525 0.4028010 0.3617393 0.2595060 0.1294412 0.1220099 2
3 0.4087809 0.4042515 0.3711077 0.3119956 0.2241836 0.1290348 4
4 0.4088547 0.4045780 0.3732053 0.3218224 0.2611785 0.1720426 6
5 0.4088770 0.4046887 0.3739936 0.3255557 0.2739738 0.2081264 8
6 0.4088953 0.4047649 0.3744183 0.3273794 0.2798225 0.2273250 10
Run Code Online (Sandbox Code Playgroud)
对于每一行(run_time),我想首先平均第一列,然后是第一列和第二列,然后是第一列,第二列和第三列,依此类推,直到第6列.平均结果应该在新列或新数据框中(我不介意).我使用以下代码完成了它:
wc2$dia10 <- wc2$cm5
wc2$dia20 <- rowMeans(wc2[c("cm5", "cm10")])
wc2$dia30 <- rowMeans(wc2[c("cm5", "cm10", "cm15")])
wc2$dia40 <- rowMeans(wc2[c("cm5", "cm10", "cm15", "cm20")])
wc2$dia50 <- rowMeans(wc2[c("cm5", "cm10", "cm15", …Run Code Online (Sandbox Code Playgroud) 我想从我的数据框中删除包含左括号"("的行.
我尝试了以下方法:
df[!grepl("(", df$Name),]
Run Code Online (Sandbox Code Playgroud)
但这并没有追查(标志
我想使用数据框计算唯一的组合 dplyr
我尝试了以下方法:
require(dplyr)
set.seed(314)
dat <- data.frame(a = sample(1:3, 100, replace = T),
b = sample(1:2, 100, replace = T),
c = sample(1:2, 100, replace = T))
dat %>% group_by(a,b,c) %>% summarise(n = n())
Run Code Online (Sandbox Code Playgroud)
但为了使这个通用(与列的名称无关),我试过:
dat %>% group_by(everything()) %>% summarise(n = n())
Run Code Online (Sandbox Code Playgroud)
结果如下:
a b c n
<int> <int> <int> <int>
1 1 1 1 6
2 1 1 2 8
3 1 2 1 13
4 1 2 2 8
5 2 1 1 7
6 2 1 …Run Code Online (Sandbox Code Playgroud) 例如,
df<-data.frame(chr=c(3,4,5),
start=c(11,12,13),
end=c(21,22,23))
df
chr start end
1 3 11 21
2 4 12 22
3 5 13 23
Run Code Online (Sandbox Code Playgroud)
我的问题是使用“:”和“-”粘贴三列,以便所需的输出为df$anno:
df
chr start end anno
1 3 11 21 3:11-21
2 4 12 22 4:12-22
3 5 13 23 5:13-23
Run Code Online (Sandbox Code Playgroud) 我重现了我的问题的简单版本。我本质上想将所有语句的语句列中的英语单词替换为西班牙语等效单词。
library(tidyverse)
english <- c('hello','world','my','name', 'is')
spanish <- c('hola','mundo','mi','nombre', 'es')
statement <-c('Hello my name is john doe',' hello world','my name is world','hello john, my world is','jane is my world ')
df <- data.frame(english,spanish,statement)
df
Run Code Online (Sandbox Code Playgroud)
我试过
df %>%
str_replace_all(statement, c(df$english), c(df$spanish))
Run Code Online (Sandbox Code Playgroud)
和
str_replace_all(statement, c(df$english), c(df$spanish)).
Run Code Online (Sandbox Code Playgroud)
第二次尝试让我更接近我的答案。仅替换了一个答案。