sed是一个流文本处理编辑器,一般我们使用的用法只是一行一行的处理文本,如果我们想对多行同时处理的话,就必须用到sed的高级命令了。举个例子,我们想要把```R与````中间的行前面都加上一个tab键,就可以用如下方法:
sed是一个流文本处理编辑器,一般我们使用的用法只是一行一行的处理文本,如果我们想对多行同时处理的话,就必须用到sed的高级命令了。举个例子,我们想要把```R与````中间的行前面都加上一个tab键,就可以用如下方法:
如果你想要得到的数据要经过很多道工序才能得出,那么就得用上管线命令了(pipe),管线命令使用的是 | 这个符号。
管线命令只能处理前面一个指令传来的正确信息,也就是standard output信息,不能处理standard error信息。
每个管线后面接的第一个数据必须是指令,并且是能接受标准输入的指令,只有这样才能称为管线命令。
常用的管线命令有:
撷取命令: cut, grep
排序命令: sort, wc, uniq
双向重导向: tee
字符转换命令: tr, col, join, paste, expand
分割命令: split
参数代换: xargs
svg能够通过坐标系统的变化来使得图形达到缩放、平移、变形和旋转的效果。
svg的transform属性和viewBox属性是两个能在元素上应用新建用户坐标系统的属性。
当svg元素应用transform属性时,这个元素复制一个当前用户坐标系统也就是viewBox,然后再对这个复制的坐标系统上进行各种变化操作,svg图形就是在这个变化后的坐标系统上作图的。
The viewport, viewBox, and preserveAspectRatio
SVG元素是不受CSS盒模型控制的,这使得定位及变化这些元素没那么直观。但是当你理解呢SVG坐标系统及变化的工作原理,操控SVG将变得非常容易。本篇文章将介绍控制SVG坐标系统的三个非常重要的属性:viewport, viewBox, and preserveAspectRatio
上节大部分讲的是块元素,这小节讨论下行内元素。行内元素见到最多的就是行内非置换元素em、a
,行内置换元素img
Anonymous text 匿名文本
<p> I'm <em>so</em> happy!</p>
'I’m'和 'happy!'是匿名文本
Content area内容区:高度由font-size决定
CSS中,每个元素会产生一个或者多个矩形盒,称为元素盒。元素盒的中心区域是内容区域,由内向外依次被padding,border,margin区域包裹。这些包裹的区域都可以设置为0,其中只有margin能设负值。
内容区域的背景,默认是延伸至border边界下面。这可以在border样式设置为虚线时清楚的看到。border的颜色在没有设置的情况下,默认为元素内容的颜色。
逻辑运算符“&&”、“||”是对操作数进行布尔算术运算,我们经常碰到的是和关系运算符配合使用的情况。但是对真值和假值的布尔操作却了解不多。下面我们就从三个层次加深对逻辑运算符的理解。
relative相对定位,元素不脱离文本流,移动元素后会形成空的占位符,不会对其他元素的排版造成影响。
absolute绝对定位,元素脱离文本流,相对于最近的已定位的祖先元素定位,未设置定位尺寸的情况下,浮动于原来所占文本流的位置上。
对于border属性大家都不陌生,我们经常会这么设置一个元素的border属性:
div.rec{
border-left:20px solid #F00;
border-right:20px solid #F00;
border-top:20px solid #00F;
border-bottom:20px solid #00F;
width:100px;
height:100px;
}
通过bulk API可以批量导入新建的文档。格式由两个JSON格式的文档组成,每个文档由空行隔开,各占一行。第一个文档由操作类型如(index,index会覆盖已存在的相同ID的文档,如果不想覆盖则用create操作方法)和元数据组成,如(index,type,ID);第二个文档则是要index文档的内容。文档代码示例如下:
{"index":{"_index":"get-together", "_type":"group", "_id":"10"}}
{"name":"Elasticsearch Bucharest"}
{"index":{"_index":"get-together", "_type":"group", "_id":"11"}}
{"name":"Big Data Bucharest"}
在网页数据爬取过程中,有时候用rvest::read_html()读取网页的内容和我们直接分析页码的源代码不一样,或者直接就是乱码。这两个常见问题可能是由user agent和编码设置错误有关。关于编码的重新设置可以采用以下这种方法:
用下载的函数(例如download.file)下载网页下来,然后读取出内容,用stringi扩展包中的
stri_enc_detect探测出字符串的编码,然后用string::stri_encode将原编码转换成为UTF8就可以了。
library(data.table)
DT = data.table(a=LETTERS[c(1,1:3)],b=4:7,key="a")
DT
R-data.table
上一节介绍了最基本的如何操作data.frame的行列来实现各种功能需求的数据计算。这一节将介绍另外一个功能更加强大的R包:data.table
library(data.table)
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9);
本节数据处理主要是针对data.frame数据结构,由最基本的方法到运用dplyr包,reshape包等对数据进行加工及运算。
下面通过具体实例学习R数据处理。
这是三家公司的营收与利润数额。如果大家想一步步跟随本文进行尝试,那么请将下列内容输入(或者直接复制加粘贴)到自己的R终端窗口当中:
fy <- c(2010,2011,2012,2010,2011,2012,2010,2011,2012);
company <- c("Apple","Apple","Apple","Google","Google","Google","Microsoft","Microsoft","Microsoft");
revenue <- c(65225,108249,156508,29321,37905,50175,62484,69943,73723);
profit <- c(14013,25922,41733,8505,9737,10737,18760,23150,16978);
companiesData <- data.frame(fy, company, revenue, profit);
companiesData$fy <- as.factor(companiesData$fy);
companiesData;
str(companiesData)
1.1 nchar和length
nchar向量元素的字符个数,length向量长度(向量元素的个数)
1 | x <- c("Hellow", "World", "!"); |