我正在尝试data.table在R中使用以总结以下数据表:
SiteNo Var1 Var2 Var3 ... Var18 Group
1 0.1 0.3 1 0.3 1
2 0.3 0.1 0.9 0.2 1
etc.
Run Code Online (Sandbox Code Playgroud)
共有668,944个观测值,43个站点,3个组和19个变量.我想获得一个函数的结果(例如mean),它通过站点和组来汇总每个列/变量.所以应该有43个站点x 3组x#的摘要统计数据(例如mean).我使用了以下代码:
e.dt<-data.table(e)
setkey(e.dt, Group) # set key to group number
# get mean for each column/variable
e.dt.mean<-e.dt[,lapply(.SD,mean), by="SiteNo"]
Run Code Online (Sandbox Code Playgroud)
使用上面的内容,我得到了43个站点,但不是我追求的3个站点.我可以将原始数据表拆分为三组,但是想知道是否有使用两个变量(SiteNo和Group)进行汇总的方法data.table.
我还在RTM data.table,但到目前为止我还没有找到上述答案.
该ROCR库R提供了绘制平均 ROC 曲线的能力(来自ROCR 参考手册):
library(ROCR)
library(ROCR)
data(ROCR.xval)
# plot ROC curves for several cross-validation runs (dotted
# in grey), overlaid by the vertical average curve and boxplots
# showing the vertical spread around the average.
data(ROCR.xval)
pred <- prediction(ROCR.xval$predictions, ROCR.xval$labels)
perf <- performance(pred,"tpr","fpr")
plot(perf,col="grey82",lty=3)
plot(perf,lwd=3,avg="vertical",spread.estimate="boxplot",add=TRUE)
Run Code Online (Sandbox Code Playgroud)
迷人的。不幸的是,似乎无法将平均 ROC 曲线本身作为对象/数据帧/等获取。用于进一步的统计测试(例如,使用 pROC)。我确实做了一些研究(尽管可能是在事实之后),我发现了这篇文章:
我查看了 ROCR 的代码,发现以下几行用于将结果传递给绘图:
performance_plots.R,(从第 451 行开始)
## compute average curve
perf.avg <- perf.sampled
perf.avg@x.values <- list( rowMeans( data.frame( perf.avg@x.values))) …Run Code Online (Sandbox Code Playgroud) 我从基本文件夹运行以下./
find . -name *.xvi.txt | sort
Run Code Online (Sandbox Code Playgroud)
返回以下排序顺序:
./LT/filename.2004167.xvi.txt
./LT/filename.2004247.xvi.txt
./pred/2004186/filename.2004186.xvi.txt
./pred/2004202/filename.2004202.xvi.txt
./pred/2004222/filename.2004222.xvi.txt
Run Code Online (Sandbox Code Playgroud)
如您所见,文件名遵循常规结构,但文件本身可能位于目录结构的不同部分.有没有办法忽略文件夹名称和/或目录结构,以便排序只返回文件名本身的文件夹/文件名列表?像这样:
./LT/filename.2004167.xvi.txt
./pred/2004186/filename.2004186.xvi.txt
./pred/2004202/filename.2004202.xvi.txt
./pred/2004222/filename.2004222.xvi.txt
./LT/filename.2004247.xvi.txt
Run Code Online (Sandbox Code Playgroud)
我在find和sort命令下尝试了几个不同的开关,但没有运气.我总是可以将所有内容复制到一个文件夹并从那里排序,但是有几百个文件,我希望存在一个更优雅的选项.
谢谢!非常感谢您的帮助.
我正在尝试将以下日期/时间字符串转换为zoo对象:
2004:071:15:23:41.87250
2004:103:15:24:15.35931
同期:DOY:小时:分钟:秒
日期/时间字符串存储在没有标题的数据框中.R中最好的方法是什么?
干杯!
根据Gavin的回答编辑:
# read in time series from CSV file; each entry as described above
timeSeriesDates <- read.csv("timeseriesdates.csv", header = FALSE, sep = ",")
# convert to format that can be used as a zoo object
timeSeriesDatesZ <- as.POSIXct(timeSeriesDates$V1, format = "%Y:%j:%H:%M:%S")
Run Code Online (Sandbox Code Playgroud)