如何处理;下标越界“;函数内部的错误?在R
我有一个这样的数据帧如何处理;下标越界“;函数内部的错误?在R,r,function,ggplot2,dataframe,R,Function,Ggplot2,Dataframe,我有一个这样的数据帧 Datetime <- c("2016-03-03 05:30:13", "2015-03-02 12:45:00", "2016-03-01 02:53:20", "2016-02-28 03:22:18", "2016-03-02 09:42:10", "2016-03-01 20:55:50", "2016-02-28 21:14:10", "2016-02-26 05:42:16", "2016-03-
Datetime <- c("2016-03-03 05:30:13", "2015-03-02 12:45:00", "2016-03-01 02:53:20", "2016-02-28 03:22:18",
"2016-03-02 09:42:10", "2016-03-01 20:55:50", "2016-02-28 21:14:10", "2016-02-26 05:42:16",
"2016-03-02 08:31:15", "2016-03-02 09:13:10", "2016-03-01 00:45:14", "2016-02-26 05:56:00",
"2016-02-02 13:44:00", "2016-02-02 14:41:20", "2016-02-01 15:33:10", "2016-01-25 04:24:00",
"2016-03-02 17:24:12", "2016-03-01 17:28:16", "2016-02-28 18:22:34", "2016-02-27 02:34:31")
ID <- c("A","A","A","A","B","B","B","B","C","C","C","C","D","D","D","D","E","E","E","E")
PT <- c(27,35,38,22,35,39,7,15,37,25,38,42,45,19,17,25,32,35,39,26)
df <- data.frame(Datetime,ID,PT)
df$Datetime <- as.POSIXct(df$Datetime,format="%Y-%m-%d %H:%M:%S")
Datetime也许
plotdata <- subset(df2, ID == id)
if(nrow(plotdata) == 0)
next
plotdata测试if(nrow(plotdata)<1)下一个
条件可以做什么。summaryBy
从哪里来?我想获得唯一的ID,以便在函数中进行子集。我也可以用“独特”来获得。谢谢@Julius。我仍在学习R,从不知道“下一步”。谢谢你指出这一点。这看起来很简单,而且做起来很整洁。
plots <- function(a) {
if (nrow(a)>0) {
ggplot(data = a,aes(x=Datetime,y=PT)) + geom_line(size = 0.5) + geom_point(size=3)
}
}
lss<-list()
plot_lss<-list()
UniqueID <- summaryBy(ID~ID, data = df, FUN = function(x) { c(n = length(x)) } )
for (j in 1:(nrow(UniqueID)))
{
cat(j)
id <- as.character(UniqueID$ID[[j]])
df1 <- subset(df, ID == id)
df2 <- subset(df1, df1$Datetime>Back2weeks & df1$Datetime<today)
lss[[j]] <- df2
plotdata <- subset(df2, ID == id)
plot_lss[[j]] <- plots(plotdata)
print(plot_lss[[j]])
Sys.sleep(0)
}
plotdata <- subset(df2, ID == id)
if(nrow(plotdata) == 0)
next