我使用 plotly 和 ggplot 创建了以下数据框对象和图形
library(ggplot2)
library(plotly)
rdate <- function(x,
min = paste0(format(Sys.Date(), '%Y'), '-01-01'),
max = paste0(format(Sys.Date(), '%Y'), '-12-31'),
sort = TRUE) {
dates <- sample(seq(as.Date(min), as.Date(max), by = "day"), x, replace=TRUE)
if (sort == TRUE) {
sort(dates)
} else {
dates
}
}
DF<-data.frame(Date = rdate(100))
DF$variable<-LETTERS[seq( from = 1, to = 10 )]
DF$Value<-round(runif(1:nrow(DF),min = 10, max = 50))
Run Code Online (Sandbox Code Playgroud)
接下来我用 ggplot 创建了一个绘图对象
p <- ggplot(DF, aes(x = Date, y = Value, colour = variable)) +
geom_line() + …Run Code Online (Sandbox Code Playgroud) 我在 R 中创建了以下数据框和关联的 ggplot 图表 首先我们使用 R 导入库
library(plotly)
library(ggplot2)
Run Code Online (Sandbox Code Playgroud)
接下来我们创建数据框如下
dataframe_1<-data.frame("Month"=c(1:12))
dataframe_1$Sales<-25*dataframe_1$Month
dataframe_1$Fac1=dataframe_1$Sales/100
dataframe_1$Month<-as.character(dataframe_1$Month)
Run Code Online (Sandbox Code Playgroud)
接下来我们创建一个基于 ggplot 的条形图和折线图,如下所示
p<-ggplot(data = dataframe_1, mapping = aes(x = Month, y = Fac1))+geom_bar(data = dataframe_1, mapping = aes(x = Month, y = Sales/100, fill = "#82e600", text=paste0("Sales:", Sales)),stat="identity")+geom_line(mapping = aes(x = Month, y = Fac1, group = 1))+geom_point(mapping = aes(x = Month, y = Fac1, group = 1, text=paste0( "Factoid:", Fac1)), inherit.aes = FALSE)+scale_y_continuous(sec.axis = sec_axis(~.*100, name = "Sales"))+labs(fill = "Sales")
Run Code Online (Sandbox Code Playgroud)
当我们渲染图 p 时,我们得到一个带有两个 …
我有这个数据框,沿着两列有一组零值。df
Sl_No No_of_Mails No_of_Responses
1 10 2
2 0 0
3 20 0
4 10 10
5 0 0
6 0 NA
7 10 NA
8 10 0
Run Code Online (Sandbox Code Playgroud)
我想在No_of_Mails不干扰另一列的情况下删除那些等于零的行。我试过下面的代码
row_sub = apply(df, 1, function(row) all(row !=0 ))
df[row_sub,]
Run Code Online (Sandbox Code Playgroud)
这将删除所有 0 值,包括number_of_responses列中的值。我希望那个专栏不受干扰 我也试过这个
df[df$No_of_Mails][!(apply(df, 1, function(y) any(y == 0))),].
Run Code Online (Sandbox Code Playgroud)
这将删除所有行并给我一个零行的表。
我在R中创建了以下数据帧
df<-data.frame("ID"=c("A", "A", "A", "B", "B", "B"),"II"=c(NA, NA,
NA,1,2,3),"JJ"=c(1,2,3, NA, NA, NA), 'KK'=c(1,2,NA, NA, 5,6))
Run Code Online (Sandbox Code Playgroud)
生成的数据帧如下
ID II JJ KK
A NA 1 1
A NA 2 2
A NA 3 NA
B 1 NA NA
B 2 NA 5
B 3 NA 6
Run Code Online (Sandbox Code Playgroud)
我希望通过ID值对数据帧进行子集化,并将仅包含NA值的所有列替换为999.结果应如下所示
ID II JJ KK
A 999 1 1
A 999 2 2
A 999 3 NA
B 1 999 NA
B 2 999 5
B 3 999 6
Run Code Online (Sandbox Code Playgroud)
我试过这段代码
library(dplyr)
df%>%
group_by(ID)%>%
select(II, JJ,KK)%>%
mutate_if(df[, …Run Code Online (Sandbox Code Playgroud) 我在 R 中有以下字符串
A<-"A (23) 56 hh()"
Run Code Online (Sandbox Code Playgroud)
我想得到以下输出
"A (23) 56 hh"
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码
B<-gsub(pattern = "()", replacement = "", x = A)
Run Code Online (Sandbox Code Playgroud)
那没有产生预期的结果。我怎样才能完成同样的事情