我使用R进行大部分统计分析.但是,清洁/处理数据,特别是在处理1Gb +的尺寸时,非常麻烦.所以我使用常见的UNIX工具.但我的问题是,是否可以在R会话中以交互方式运行它们?例如:假设file1是来自R进程的输出数据集,有100行.从这一点来看,对于我的下一个R流程,我需要第1列和第2列的特定子集file2,可以通过它轻松提取cut,awk.因此工作流程如下:
Some R process => file1
cut --fields=1,2 <file1 | awk something something >file2
Next R process using file2
Run Code Online (Sandbox Code Playgroud)
如果这是一个愚蠢的问题,请提前道歉.
如果我理解正确,该sparkTable包允许多种情节,但仅限于一个系列.因此,例如,如果我的数据集df如下所示:
Run Code Online (Sandbox Code Playgroud)variable value time Level_1 34 1947 Level_1 38 1948 Level_1 17 1949 Level_1 61 1950 Level_1 19 1951 Level_1 80 1952 Level_1 57 1953 Level_1 66 1954
即变量"value"在"变量"级别上的"时间"变化,然后我可以使用以下代码绘制不同级别的"变量"的"值"的迷你图和条形图:
library(sparkTable)
content<-list()
content[['LinePlot']]<-newSparkLine()
content[['BarPlot']]<-newSparkBar()
varType<-rep("value",2)
df<-df[,c("variable","value","time")]
df$time<-as.numeric(as.character(df$time))
dat<-reshapeExt(df,idvar="variable",varying=list(2))
sparkTab<-newSparkTable(dat,content,varType)
plotSparkTable ( sparkTab , outputType = "html", filename = "t1")
Run Code Online (Sandbox Code Playgroud)
但有没有办法在同一输出中绘制多个系列?例如,假设我希望有一个"值"的迷你图,另一个是"值"系列的累积值(计算方法Cumulative_Value = ave(df$value, df$variable, FUN=cumsum))
我想将现有数据帧除以其中一个因子变量的级别,以便拆分数据帧的名称对应于因子的级别.
df <- data.frame(cbind(X = 1:10, Y = rnorm(10)), Z = sample(LETTERS[1:3], 10, replace = TRUE))
Run Code Online (Sandbox Code Playgroud)
如果df是原始数据帧,我想将其拆分为三个称为的数据帧A,B并且C:
A = subset(df, Z == 'A')
B = subset(df, Z == 'B')
...
Run Code Online (Sandbox Code Playgroud)
有一种简单的方法可以一次性完成这项工作吗?我有一个庞大的数据集,因子变量有太多的水平.
我有一个数据框,其中变量是字符串.如何仅提取至少一个值与特定字符串匹配的列?例如,在下面的数据框中,我想要字符串"AB"的匹配,即我想要将包含列V1,V2和V5的另一个数据帧子集化.
V1 V2 V3 V4 V5
ABCD ABEF EFGJ AFASD JLKJLXKJ
LKJAF ROGIJ GREJWI SDFS ABKLJKJX
AFSD JLASDF JKLJ OIJPOI AFSD
Run Code Online (Sandbox Code Playgroud) 我正在使用stackpoly()plotrix包中的命令在R中绘制堆积区域图.至少可以说,默认颜色很明显.有没有办法使用符号或灰度代替?
我有一个数据帧"df".我想从条件语句创建两个子集(a&b),比如变量"x",其值大于10.在SAS中,这将是:
data a, b; set df; if x>10 then output a; else output b.在R中有办法做到这一点吗?
我有一个包含3个变量的数据框:地点,时间和值(P,T,X).我想创建一个第四个变量,它将是X的累积和.通常我喜欢用分组计算sqldf,但似乎找不到相应的cumsum.那是:
sqldf("select P,T,X, cumsum(X) as X_CUM from df group by P,T")
Run Code Online (Sandbox Code Playgroud)
不起作用.这有可能sqldf吗?我试过了doBy,但这也不是全部cumsum.
我想要得到的公司的名字中的中间列此页面(用蓝色粗体),以及是谁注册投诉的人的位置指示器(例如,"印度新德里",写在绿) .基本上,我想要一个包含两列的表(或数据框),一列用于公司,另一列用于位置.有任何想法吗?
我必须在R中读取一小部分ESRI shapefile.我这样做分两步:
第1步:我ogr2ogr用来将shapefile剪辑到我的边界框:
ogr2ogr -clipsrc xMin yMin xMax yMax outfile.shp infile.shp
Run Code Online (Sandbox Code Playgroud)
第2步:我将其读入R rgdal:
df = readOGR(dsn="/path", layer="outfile")
Run Code Online (Sandbox Code Playgroud)
问题是我必须为多个文件执行此操作,并且很难跟踪OGR生成每个单独文件的操作.有没有办法ogr2ogr在R中管道,所以第1步是在飞行中完成的?
我必须table()在R中调用10个变量的函数.有没有办法一次性完成它,而不是单独调用它们table(v1),table(v2)... table(v10)?
r ×10
gdal ×1
gis ×1
html-parsing ×1
match ×1
plot ×1
sparktable ×1
sqldf ×1
subset ×1
unix ×1
web-scraping ×1