精华内容
下载资源
问答
  • r语言rstudio_R和RStudio简介
    千次阅读
    2020-08-27 15:44:12

    r语言和rstudio

    With increased computing power comes increased access to large amounts of freely accessible data. People are tracking their lives with productivity, calorie, fitness and sleep trackers. Governments are publishing survey data left and right, and companies conduct audience testing that needs analyzing. There’s a lot of data out there even now, ready to be grabbed and looked at.

    随着计算能力的提高,对大量免费访问的数据的访问也越来越多。 人们通过生产力,卡路里,健身和睡眠追踪器来追踪生活。 政府正在左右发布调查数据,公司进行需要分析的受众测试。 即使到现在, 仍然有很多数据可供读取和查看。

    Graphs and Analytics

    In this tutorial, we’ll look at the basics of the R programming language – a language built solely for statistical computing. I won’t bore you with Wikipedia definitions – instead, let’s dive right into it. In this introduction, we’ll cover the installation of the default IDE and language, and its data types.

    在本教程中,我们将研究R编程语言的基础-R编程语言是专门为统计计算而构建的。 我不会对Wikipedia的定义感到厌烦–相反,让我们直接研究它。 在本简介中,我们将介绍默认IDE和语言及其数据类型的安装。

    正在安装 (Installing)

    R is both a programming language and a software environment, which means it’s fully self-contained. There are two steps to getting it installed:

    R既是一种编程语言,又是一种软件环境,这意味着它是完全独立的。 有两个安装步骤:

    Both are free, both open source. R will be installed as the underlying engine that powers RStudio’s computations, while RStudio will provide sample data, command autocompletion, help files, and an effective interface for getting things done quickly. You could write R code in simple text files as in most other languages, but that’s really not recommended given how many commands there are and how complex things can quickly get.

    两者都是免费的,都是开源的。 R将被安装为支持RStudio计算的基础引擎,而RStudio将提供示例数据,命令自动完成,帮助文件以及有效地完成任务的有效界面。 您可以像使用其他大多数语言一样,在简单的文本文件中编写R代码,但实际上不建议这样做,因为有多少个命令以及可以快速获得复杂的东西。

    After you’ve installed the tools, launch R Studio.

    安装工具后,启动R Studio。

    IDE领域 (IDE Areas)

    Let’s briefly explain the GUI. There are four main parts. I’ll explain the default order, though note that this can be changed in Settings/Preferences -> Pane Layout.

    让我们简要解释一下GUI。 有四个主要部分。 我将说明默认顺序,不过请注意,可以在“设置/首选项”->“窗格布局”中更改此默认顺序。

    编辑 (The Editor)

    The top left quadrant is the editor. It’s where you write R code you want to keep for later – functions, classes, packages, etc. This is, for all intents and purposes, identical to every other code editor’s main window. Apart from some self-explanatory buttons, and others that needn’t concern you at this starting point, there is also a “Source on Save” checkbox. This means “Load contents of file into my console’s runtime every time I save the file”. You should have this on at all times, it makes your development flow faster by one click.

    左上象限是编辑器。 在这里您可以编写要保留的R代码-函数,类,程序包等。就所有目的和目的而言,这与其他代码编辑器的主窗口相同。 除了一些不言自明的按钮,以及在此开始时不需要您关注的其他按钮之外,还有一个“保存时来源”复选框。 这意味着“每次保存文件时,都将文件内容加载到控制台的运行时中”。 您应该始终启用它,一键即可加快您的开发流程。

    控制台 (The Console)

    The lower left quadrant is the console. It’s a REPL for R in which you can test out your ideas, datasets, filters, and functions. This is where you’ll be spending most of your time in the beginning – it’s here that you verify an idea you had works before copying it over into the editor above. This is also the environment into which your R files will be sourced on Save (see above), so whenever you develop a new function in an R file above, it automatically becomes available in this REPL. We’ll be spending a lot of time in the REPL in the remainder of this article.

    左下象限是控制台。 这是R的REPL ,您可以在其中测试您的想法,数据集,过滤器和函数。 这是您一开始将花费大部分时间的地方–在这里,您可以验证自己的想法,然后再将其复制到上面的编辑器中。 这也是R文件将在Save上获取源的环境(请参见上文),因此,每当您在上面的R文件中开发新功能时,此功能就会自动在此REPL中可用。 在本文的其余部分中,我们将在REPL上花费大量时间。

    历史/环境 (History / Environment)

    The top right quadrant has two tabs: environment and history.

    右上象限有两个选项卡:环境和历史记录。

    Environment refers to the console environment (see above) and will list, in detail, every single symbol you defined in the console (whether via sourcing or directly). That is, if you have a function available in the REPL, it will be listed in the environment. If you have a variable, or a dataset, it will be listed there. This is where you can also import custom datasets manually and make them instantly available in the console, if you don’t feel like typing out the commands to do so. You can also inspect the environment of other packages you installed and loaded (more on packages at a later time). Play around with it – you can’t break anything.

    环境是指控制台环境(请参见上文),将详细列出您在控制台中定义的每个符号(无论是通过采购还是直接)。 也就是说,如果您在REPL中具有可用的功能,它将在环境中列出。 如果您有变量或数据集,它将在此处列出。 如果您不想键入命令,也可以在此处手动导入自定义数据集,并使它们在控制台中立即可用。 您还可以检查已安装和加载的其他软件包的环境(稍后会介绍更多有关软件包的信息)。 试一试–您不会破坏任何东西。

    History lists every single console command you executed since the last project started. It is saved into a hidden .Rhistory file in your project’s folder. If you don’t choose to save your environment after a session, the history won’t be saved.

    历史记录列出了自上一个项目启动以来您执行的每个控制台命令。 它被保存到项目文件夹中的隐藏.Rhistory文件中。 如果您没有选择在会话后保存环境,则不会保存历史记录。

    杂项 (Misc)

    The bottom right panel is the misc panel, and contains five separate tabs. The first one, Files, is self-explanatory. The Plots tab will contain the graphs you generated with R. It is there you can zoom, export, configure and inspect your charts and plots. The Packages tab lets you install additional packages into R. A brief description is next to each available package, though there are many more than those listed there. We’ll go through package repositories in a later post. The Help tab lets you search the incredibly extensive help directory and will automatically open whenever you call help on a command in the console (help is called by prepending a command name with a question mark, like so: ?data.frame). Finally, the Viewer is essentially RStudio’s built-in browser. Yes, you can develop web apps with R and even launch locally hosted web apps within it.

    右下方的面板是杂项面板,包含五个单独的选项卡。 第一个文件Files是不言自明的。 “图形选项卡将包含您使用R生成的图形。您可以在其中缩放,导出,配置和检查图表。 “ 软件包”选项卡使您可以将其他软件包安装到R中。每个可用软件包旁边都有简要说明,尽管这里列出的内容不止这些。 我们将在以后的文章中浏览软件包存储库。 通过“ 帮助”选项卡,您可以搜索范围广泛的帮助目录,并且只要您在控制台中的命令上调用帮助,便会自动打开(通过在命令名前加上问号来调用帮助,例如: ?data.frame )。 最后, 查看器本质上是RStudio的内置浏览器 。 是的,您可以使用R开发Web应用程序,甚至可以在其中启动本地托管的Web应用程序。

    内置数据集 (Built-in datasets)

    In the text below, whenever I mention using a command, assume that this means punching it into the console. So, if I say “We look at the help for data frames with ?data.frame“, you do this:

    在下面的文本中,每当我提到使用命令时,都假定这意味着将其打入控制台。 因此,如果我说“我们使用?data.frame查看数据帧的帮助”,则可以这样做:

    RStudio comes with some datasets for new users to play around with. To use a built-in dataset, we load it with the data function, and supply an argument corresponding to the set we want. To see all the available built-in sets, punch in data(), without an argument.

    RStudio附带了一些数据集,供新用户使用。 要使用内置数据集,请使用data函数加载该data集,并提供与所需集合相对应的参数。 要查看所有可用的内置集,请打入data() ,不带参数。

    Looking at the list of available datasets, let’s load a very small one for starters:

    查看可用数据集的列表,让我们为入门者加载一个很小的数据集:

    data("women")

    You should see the women variable appear in the Environment panel, though its second field says <Promise>. A promise in this case merely means “The data will be there when you actually need it”. We told R to load this set, but we haven’t actually used it anywhere, so it didn’t feel the need to load it fully into memory. Let’s tell R we need it. In the console, print out the entire set by simply calling:

    您应该看到women变量出现在Environment面板中,尽管它的第二个字段是<Promise> 。 在这种情况下,promise只是意味着“数据将在您真正需要时就在那儿”。 我们告诉R加载此集合,但实际上并没有在任何地方使用它,因此它没有必要将其完全加载到内存中。 告诉R我们需要它。 在控制台中,只需调用以下命令,即可打印出整个设置:

    women

    This is equivalent to:

    这等效于:

    print(women)

    Note: We’ll be using the former approach, simply because it’s less typing. Remember – in R, the last value that is typed out without being an expression (like assigning or summing something) is what gets auto-printed to the console.

    注意:我们将使用前一种方法,只是因为它的键入较少。 切记–在R中,最后一个不是表达式(例如,分配或求和)的值就是自动打印到控制台的值。

    The numbers will be produced in the console, and the Environment entry for women should change. You should be able to see the data in the environment panel now, too, by clicking the blue expand arrow next to the variable name.

    这些数字将在控制台中显示,并且women的“环境”条目应更改。 单击变量名称旁边的蓝色展开箭头,您现在也应该能够在环境面板中查看数据。

    This set only has 15 entries and as such offers nothing of value, but it’s good enough for playing around in.

    这组只有15个条目,因此没有任何价值,但是足够玩。

    To further study the set you’re dealing with, there are several functions to keep in mind (demonstration of each can be seen below explanations):

    为了进一步研究您正在处理的集合,需要牢记几个功能(每个示例的说明都可以在下面的说明中看到):

    • nrow / ncol will list the number of rows / columns respectively

      nrow / ncol将分别列出行/列数

    • summary will output a summary about the set’s columns. In the case of the women set, we have two numeric columns (both columns are numeric, or in other words, each column is a numeric vector – more on data types and vectors later) and R knows that when you ask it for an analysis of a numeric vector, it should give you the typical values for such collections: the minimum value in the set, the mean (average) between the minimum and the mean, the mean (average of all values), the mean between the mean and the maximum, and the maximum, the largest number in the column. It does this for both height and width. For different types of vectors (like ones where every element is a word instead of a number) the output is different.

      summary将输出有关集合列的摘要。 对于women集合,我们有两个数字列(两列都是数字列,换句话说,每列都是数字向量-有关数据类型和向量的更多信息),R知道当您要求它进行分析时数值向量,它应该为您提供此类集合的典型值:集合中的最小值,最小值和平均值之间的平均值(平均值),平均值(所有值的平均值),平均值和平均值之间的平均值列中的最大值和最大值。 它对高度和宽度都执行此操作。 对于不同类型的向量(例如,每个元素都是一个单词而不是一个数字的向量),输出是不同的。

    • str str is a different kind of summary. In fact, str stands for “structure” and it outputs a summary of a data set’s structure. In our case, it will tell us that it is a “data.frame” (a special data type we’ll explain later) with 15 obs (observations or rows) and 2 variables (or columns). It then proceeds to list all the columns in the data frame with some (but not all) of their values, just so we get a grasp on the kind of values we’re dealing with.

      str str是另一种摘要。 实际上, str代表“结构”,它输出数据集结构的摘要。 在我们的例子中,它将告诉我们这是一个“ data.frame”(一种特殊的数据类型,我们将在后面解释),它有15个obs(观察值或行)和2个变量(或列)。 然后,它继续列出数据框中的所有列及其一些(但不是全部)值,只是为了让我们了解要处理的值的种类。

    • dim gives you the dimensions of a data set. Calling dim(women) gives us 15 2 which means 15 rows and 2 columns. length can be used to count the number of vertical elements in a set – in vectors (see below) this is the number of elements, in data sets like women, this is the number of columns.

      dim为您提供数据集的尺寸。 调用dim(women)给我们15 2 ,这意味着15行2列。 length可用于计算集合中垂直元素的数量–在向量中(见下文),这是元素的数量,在诸如women类的数据集中,这是列数。

    > nrow(women)
    [1] 15
    > ncol(women)
    [1] 2
    > summary(women)
         height         weight     
     Min.   :58.0   Min.   :115.0  
     1st Qu.:61.5   1st Qu.:124.5  
     Median :65.0   Median :135.0  
     Mean   :65.0   Mean   :136.7  
     3rd Qu.:68.5   3rd Qu.:148.0  
     Max.   :72.0   Max.   :164.0  
    > str(women)
    'data.frame':	15 obs. of  2 variables:
     $ height: num  58 59 60 61 62 63 64 65 66 67 ...
     $ weight: num  115 117 120 123 126 129 132 135 139 142 ...
    > dim(women)
    [1] 15  2

    You’ll be using these functions a lot, so I recommend you get familiar with them. Load some of the other data sets and inspect them like this. No need to know them by heart – this post and the help files will always be around for reference, but it’s nice to be fluent in them anyway.

    您将使用这些功能很多 ,所以我建议你熟悉他们。 加载其他一些数据集并像这样检查它们。 无需内心地了解它们-这篇文章和帮助文件将始终作为参考,但是无论如何还是能流利地使用它们是很高兴的。

    资料类型 (Data Types)

    R has some typical atomic data types you already know about from other languages, but also provides some more statistics-inclined ones. Let’s briefly go through them. While explaining these types, I’ll talk about assigning them. Assigning in R is done with the “left arrow” operator or <-, as in:

    R具有您已经从其他语言中了解到的一些典型的原子数据类型,但是还提供了一些倾向于统计的数据类型。 让我们简要地介绍一下它们。 在解释这些类型时,我将讨论分配它们。 R中的分配是通过“左箭头”运算符或<- ,如下所示:

    myString <- "Hello World"

    R is, however, very forgiving and will let you use the = assignment operator in top level environments like the console, if you don’t feel like typing out the arrow every time.

    但是,R非常宽容,如果您不想每次都键入箭头,可以在控制台等顶级环境中使用= 赋值运算符

    myString = "Hello World"

    I suggest you get used to the arrow, though, you won’t get very far without it.

    我建议您习惯箭头,但是如果没有它,您不会走得太远。

    To check the type (or class) of a variable, the class function can be used (though str from above does almost the same thing): class(myString).

    要检查变量的类型(或类),可以使用class函数(尽管上面的str几乎做同样的事情): class(myString)

    原子学 (Atomics)

    Atomic classes are basic types from which others are constructed.

    原子类是构造其他类的基本类型。

    字符 (Character)

    The character class is your typical string, a set of one or more letters.

    字符类是您的典型字符串,是一个或多个字母的集合。

    > myString <- "Hello World"
    > class(myString)
    [1] "character"

    The [1] will be explained below, in the Vectors section.

    [1]将在下面的“向量”部分中进行说明。

    数字 (Numeric)

    Corresponds to “float” in other languages – indicates numeric values like 10, 15.6, -48792.5498982749879 and so on.

    对应于其他语言中的“浮点数”,表示数字值,例如10、15.6,-48792.5498982749879等。

    > myNum <- 5.983904798274987298
    > class(myNum)
    [1] "numeric"

    You can coerce (change type of) numeric string values into numeric types, like so:

    您可以将数字字符串值强制(更改类型)为数字类型,如下所示:

    > myString <- "5.60"
    > class(myString)
    [1] "character"
    > myNumber <- as.numeric(myString)
    > myNumber
    [1] 5.6
    > class(myNumber)
    [1] "numeric"

    There is also a special number Inf which represents infinity. It can be used in calculations:

    还有一个特殊的数字Inf表示无穷大。 可用于计算:

    > 1/0
    [1] Inf

    Another “number” is NaN which stands for “Not a Number”. This is what you get when you do something like 0/0.

    另一个“数字”是NaN ,代表“非数字”。 这是您执行0/0类的操作时得到的。

    整数 (Integer)

    Integers are whole numbers, though they get autocoerced (changed) into numerics when saved into variables:

    整数是整数,但是当保存到变量中时它们会被自动转换为数字:

    > myInt <- 209173987
    > class(myInt)
    [1] "numeric"

    To actually force them to be integers, we need to invoke a function that manually coerces them, called as.integer:

    要实际将它们强制为整数,我们需要调用一个手动强制它们的函数,称为as.integer

    > myInt <- as.integer(myInt)
    > class(myInt)
    [1] "integer"

    You can prevent autocoercion by setting integers with an L suffix:

    您可以通过设置带有L后缀的整数来防止自动强制:

    > myInt = 5L
    > class(myInt)
    [1] "integer"

    Note that if you give R a number that is greater than what its memory can store, it autocoerces it into a real number, even if you put L at the end:

    请注意,如果您给R提供的数字大于其内存可以存储的数字,即使您将L放在末尾,它也会自动将其强制转换为实数:

    > myInt <- 2479827498237498723498729384
    > class(myInt)
    [1] "numeric"
    > myInt
    [1] 2.479827e+27

    but if you then try to coerce that number into an integer, R will discard it because it simply cannot make integers that big. Instead of a number, you get “NA”, which is a special type in R indicating “Not Available”, also known as a missing value.

    但是如果您随后尝试将该数字强制转换为整数,则R会舍弃该数字,因为它根本无法使该整数变大。 取而代之的是数字“ NA”,它是R中的一种特殊类型,表示“不可用”,也称为缺失值。

    > myIntCoerced <- as.integer(myInt)
    Warning message:
    NAs introduced by coercion 
    > myIntCoerced
    [1] NA
    > class(myIntCoerced)
    [1] "integer"

    The NA is still of a type “integer”, but one without value.

    NA仍然是“整数”类型,但没有价值。

    Note that when coercing numerics into integers, decimal places get lost. The same applies to coercing from numeric decimal strings:

    请注意,将数字强制为整数时,小数位会丢失。 从数字十进制字符串强制转换也是如此:

    > myString <- "5.60"
    > myNumeric <- 5.6
    > myInteger1 <- as.integer(myString)
    > myInteger2 <- as.integer(myNumeric)
    > myInteger1 == myInteger2
    [1] TRUE
    > myInteger1
    [1] 5

    复杂 (Complex)

    Explaining complex numbers is a bit outside the scope of this tutorial, particularly if you weren’t exposed to them in school, but if you’re curious, you can find out more here. They take the form of a + bi where a and b are real numbers and i is imaginary. In R, they’re constructed with a special complex function.

    解释复数有点超出本教程的范围,特别是如果您在学校里没有接触过复数的时候,但是如果您好奇的话,可以在这里找到更多信息 。 它们采用a + bi的形式,其中ab是实数,而i是虚数。 在R中,它们是使用特殊的complex函数构造的。

    > myComplex <- complex(1, 3292, 8974892)
    > myComplex
    [1] 3292+8974892i
    > class(myComplex)
    [1] "complex"

    You won’t be needing those nearly as often as you might need the other types, but if you want to know more about the complex function just call for help on it: ?complex.

    您几乎不需要其他类型的对象,而使用它们的频率却几乎没有,但是如果您想了解更多有关complex函数的信息,请致电寻求帮助: ?complex

    逻辑上 (Logical)

    Logical types (booleans) are the same as in most other languages and can be two things – either true, or false. True can be represented with TRUE or T while false is, predictably, FALSE or F.

    逻辑类型(布尔值)与大多数其他语言相同,可以是两件事– true或false。 True可以用TRUET表示,而false可以预测为FALSEF

    > TRUE == T
    [1] TRUE
    > myBool <- TRUE
    > myBool == T
    [1] TRUE
    > myComparison <- 5 > 6
    > myComparison == FALSE
    [1] TRUE
    > class(myComparison)
    [1] "logical"

    Whenever you create an expression the result of which is a “yes” or “no” value, you get a TRUE or FALSE – like in the case of 5 > 6 above. 5 is not greater than 6, so the expression becomes FALSE. Comparing myComparison to FALSE thus yields TRUE because the myComparison variable indeed contains a value of FALSE.

    每当创建结果为“是”或“否”的表达式时,都会得到TRUE或FALSE –就像上面的5 > 6 。 5 大于6,因此表达式变为FALSE 。 因此,将myComparisonFALSE进行比较myComparison得出TRUE因为myComparison变量确实包含FALSE的值。

    When needed by a function, logical values will be coerced into numerics. This means that if I write 1 + TRUE the console will produce 2, where as 1 + FALSE gives 1. Likewise, we can easily coerce other types into logicals (as.logical(myVariable)). Any numeric or integer with a value not equal to 0 or NA will give TRUE. 0 and 0L will give FALSE. Strings like “True”, “TRUE”, “true” and “T” will be turned into TRUE, “False”, “FALSE”, “false” and “F” will be FALSE. Any other string will coerce into a logical NA value.

    当功能需要时,逻辑值将被强制转换为数字。 这意味着如果我写1 + TRUE则控制台将产生2 ,而1 + FALSE则为1 。 同样,我们可以轻松地将其他类型强制转换为逻辑( as.logical(myVariable) )。 数值不等于0或NA的任何数字或整数将给出TRUE 。 0和0L将给出FALSE 。 诸如“ True”,“ TRUE”,“ true”和“ T”之类的字符串将变为TRUE,“ False”,“ FALSE”,“ false”和“ F”将为FALSE 。 任何其他字符串将强制转换为逻辑NA值。

    更高类型 (Higher Types)

    Higher types are types composed of the lower ones.

    高类型是由低类型组成的类型。

    向量和列表 (Vectors and Lists)

    The most essential of all, the vector, is a collection of elements of the same type. In our earlier dataset example, one column of the women dataset was a numeric vector, meaning it was a collection with only numeric values in it. A vector can only have elements of the exact same type. Vectors can be created with the vector function, but are usually created with the shorthand c (concatenate) function:

    向量中最重要的是向量,是同一类型的元素的集合。 在我们之前的数据集示例中, women数据集的一列是数字向量 ,这意味着它是其中仅包含数字值的集合。 向量只能具有完全相同类型的元素。 可以使用vector函数创建vector ,但是通常使用简写c (连接)函数创建vector

    > myVector <- c("Hello", "World", "Third Element")
    > class(myVector)
    [1] "character"
    > myVector
    [1] "Hello"         "World"         "Third Element"

    We can see here that the vector’s class is “character”, meaning that it contains only character type values. If we print it out by just calling its variable name, we get all three elements and a [1]. The [1] means literally: “I am outputting the contents of your vector. The first element on this line is element number 1 in the vector”. What you see in [] depends entirely on the size of your console panel and the length of the array. For example:

    在这里我们可以看到向量的类是“字符”,这意味着它仅包含字符类型值。 如果仅通过调用其变量名将其打印出来,我们将获得所有三个元素和一个[1][1]字面意思是:“我正在输出向量的内容。 这行的第一个元素是向量中的元素编号1”。 您在[]看到的内容完全取决于控制台面板的大小和数组的长度。 例如:

    > myVector <- c("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen")
    > myVector
     [1] "One"      "Two"      "Three"    "Four"     "Five"     "Six"      "Seven"   
     [8] "Eight"    "Nine"     "Ten"      "Eleven"   "Twelve"   "Thirteen" "Fourteen"
    [15] "Fifteen"

    The number in square brackets simply means “The element after me is Nth in the set”. It is there purely to make the output more readable, and does not affect actual data.

    方括号中的数字仅表示“我之后的元素在集合中的第N个”。 纯粹是为了使输出更具可读性,并且不影响实际数据。

    Note that vectors are strictly one-dimensional. You cannot add another vector as an element inside an existing vector – their elements get merged into one:

    请注意,向量严格是一维的。 您不能在现有矢量中添加另一个矢量作为元素–它们的元素合并为一个:

    > v1 <- c("a", "b", "c")
    > v2 <- c("d", "e", "f")
    > v3 <- c(v1, v2)
    > v3
    [1] "a" "b" "c" "d" "e" "f"

    You can generate entire numeric vectors by specifying a range:

    您可以通过指定范围来生成整个数值向量:

    > myRange <- c(1:10)
    > myRange
     [1]  1  2  3  4  5  6  7  8  9 10

    Lists are just like vectors, only they don’t have the limitation of being able to hold elements of the same type exclusively. They are built with the list function or with the c function if one of the elements you’re adding is a list:

    列表就像向量一样,只是它们没有能够排他地容纳相同类型元素的限制。 如果要添加的元素之一是list ,则它们是使用list函数或c函数构建的:

    > myList <- list(5, "Hello", "Worlds", TRUE)
    > class(myList)
    [1] "list"
    > myList
    [[1]]
    [1] 5
    
    [[2]]
    [1] "Hello"
    
    [[3]]
    [1] "Worlds"
    
    [[4]]
    [1] TRUE

    Like with vectors, the one-dimensionality rule applies. Adding a list into another will merge their elements.

    与向量一样,一维规则也适用。 将列表添加到另一个列表将合并其元素。

    The [[N]] output means “The first element of this list is a vector with a single element 5, the second element of this list is a vector with a single element Hello… etc.” Appending the [[N]] to the variable that holds the list actually returns the element. We can check this easily:

    [[N]]输出表示“此列表的第一个元素是带有单个元素5的向量,此列表的第二个元素是带有单个元素Hello ...的向量”。 将[[N]]附加到保存列表的变量实际上返回该元素。 我们可以很容易地检查一下:

    > class(myList[[1]])
    [1] "numeric"
    > class(myList[[2]])
    [1] "character"
    > class(myList[[3]])
    [1] "character"
    > class(myList[[4]])
    [1] "logical"

    数据框架 (Data.Frame)

    Dataframes are essentially tables with rows and columns, much like spreadsheets. The women dataset we loaded above was a dataframe. You can access individual columns of dataframes by using the $ operator on the variable, followed by the column name:

    数据框本质上是具有行和列的表,非常类似于电子表格。 我们上面加载的women数据集是一个数据框。 您可以通过在变量上使用$运算符来访问数据帧的各个列,后跟列名:

    > women$height
     [1] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

    The result gets returned as a numeric vector. Check its class with class(women$height).

    结果将作为数字矢量返回。 使用class(women$height)检查其类。

    If the column name contains spaces, you can wrap it in quotation marks (women$"Female Height"), but you can also access a column by its numeric position in the list of columns. For example, we know height is the first column:

    如果列名包含空格,则可以将其用引号引起来( women$"Female Height" ),但是也可以通过列在列列表中的数字位置来访问该列。 例如,我们知道height是第一列:

    > head(women[1])
      height
    1     58
    2     59
    3     60
    4     61
    5     62
    6     63
    > head(women[[1]])
    [1] 58 59 60 61 62 63

    The head function tells R to only return the first 6 results – this is so we keep our console nice and scroll-free, excellent for brief looks into datasets without printing them out in their entirety. (The opposite can be achieved with tail which prints out the last 6 results).

    head函数告诉R仅返回前6个结果–这样我们就可以保持控制台良好且无滚动条,非常适合简短查看数据集而无需完整打印它们。 (相反的情况是可以用tail打印出最后6个结果)。

    We can see here that when accessing the column with single-square-bracket [1] we get a dataframe but with one less column. If, however, we access it with the double-square-bracket [[1]], we get a numeric vector of heights. The data returned by using the single bracket stays the same type as the parent data, while the double bracket accessor targets the specific values in that column and returns them in their most rudimentary form, a numeric vector.

    我们在这里可以看到,使用单方括号[1]访问列时,我们得到一个数据帧,但列少了一个。 但是,如果我们使用双方括号[[1]]访问它,则会得到一个高度的数值向量。 使用单括号返回的数据与父数据保持相同的类型,而双括号访问器则以该列中的特定值为目标,并以最基本的形式(数字矢量)返回它们。

    We create dataframes with the data.frame function:

    我们使用data.frame函数创建数据data.frame

    > men <- data.frame(height = c(50:65), weight = c(150:165))
    > head(men)
      height weight
    1     50    150
    2     51    151
    3     52    152
    4     53    153
    5     54    154
    6     55    155

    Here we created a sample men dataset not unlike the women set from before.

    在这里,我们创建了一个样本men数据集,该数据集与之前设置的women没有什么不同。

    If we want to get just the names of the columns, we use the names function. We can even assign a value to it and thus change the column names:

    如果只想获取列的名称,则可以使用names函数。 我们甚至可以为其分配一个值,从而更改列名:

    > names(men)
    [1] "height" "weight"
    > names(men) <- c("Male Height", "Male Weight")
    > head(men)
      Male Height Male Weight
    1          50         150
    2          51         151
    3          52         152
    4          53         153
    5          54         154
    6          55         155

    矩阵 (Matrix)

    Matrices are multi-dimensional vectors. They are like dataframes, but can only contain values of the same type. They are created with the matrix function and need the number of rows and columns as parameters, and the values to place into these slots:

    矩阵是多维向量。 它们就像数据框一样,但是只能包含相同类型的值。 它们是使用matrix函数创建的,需要将行数和列数作为参数,并将值放入这些插槽中:

    > m <- matrix(nrow = 4, ncol = 5, 1:20)
    > m
         [,1] [,2] [,3] [,4] [,5]
    [1,]    1    5    9   13   17
    [2,]    2    6   10   14   18
    [3,]    3    7   11   15   19
    [4,]    4    8   12   16   20

    What happens if the number of values provided doesn’t match the number of cells?

    如果提供的值数与单元格数不匹配怎么办?

    > m <- matrix(nrow = 4, ncol = 5, 1:25)
    Warning message:
    In matrix(nrow = 4, ncol = 5, 1:25) :
      data length [25] is not a sub-multiple or multiple of the number of rows [4]
    > m
         [,1] [,2] [,3] [,4] [,5]
    [1,]    1    5    9   13   17
    [2,]    2    6   10   14   18
    [3,]    3    7   11   15   19
    [4,]    4    8   12   16   20

    We get a warning, but the matrix is created anyway with all the extra values simply discarded. If there’s fewer values than cells, the values provided get recycled until the matrix is full:

    我们得到警告,但是无论如何都会创建矩阵,而所有多余的值都将被简单丢弃。 如果值少于单元格,则提供的值将被回收,直到矩阵已满:

    > m <- matrix(nrow = 4, ncol = 5, 1:16)
    Warning message:
    In matrix(nrow = 4, ncol = 5, 1:16) :
      data length [16] is not a sub-multiple or multiple of the number of columns [5]
    > m
         [,1] [,2] [,3] [,4] [,5]
    [1,]    1    5    9   13    1
    [2,]    2    6   10   14    2
    [3,]    3    7   11   15    3
    [4,]    4    8   12   16    4

    Much like data frames have the names attribute/function, so do the matrices have a dim (dimension) one. Changing this property can mutate the form of a matrix:

    数据框很像names属性/函数,矩阵也有dim (维)维。 更改此属性可以改变矩阵的形式:

    > m <- 1:15
    > m
     [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
    > dim(m)
    NULL
    > dim(m) <- c(3,5)
    > m
         [,1] [,2] [,3] [,4] [,5]
    [1,]    1    4    7   10   13
    [2,]    2    5    8   11   14
    [3,]    3    6    9   12   15
    > dim(m)
    [1] 3 5
    > dim(m) <- c(5,3)
    > m
         [,1] [,2] [,3]
    [1,]    1    6   11
    [2,]    2    7   12
    [3,]    3    8   13
    [4,]    4    9   14
    [5,]    5   10   15
    > dim(m)
    [1] 5 3
    > dim(m) <- NULL
    > m
     [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

    Here we created a numeric vector of 15 sequential numbers (in such cases, we can omit the c). The dim attribute did not exist on it, as evident by the dim function returning NULL, so we changed it by assigning a numeric vector of 3, 5 to it. This resulted in a reshuffling of the elements to fit into the newly constructed matrix. We then changed the dimensions again by inverting the number of columns and rows to 5, 3, which again produced a different matrix. Finally, nullifying the dimensions produced the numeric vector from the beginning.

    在这里,我们创建了一个由15个连续数字组成的数字矢量(在这种情况下,我们可以省略c )。 dim属性不存在于其上,如dim函数返回NULL所示,因此我们通过为其分配数字3, 5对其进行了更改。 这导致元素的改组以适合新构建的矩阵。 然后,我们通过反转的列和行的数量来再次改变尺寸5, 3 ,这再次产生了不同的基质。 最后,从零开始消除尺寸会产生数值向量。

    It is also possible to combine / expand / alter vectors, dataframes and matrices by using cbind and rbind:

    也可以使用cbindrbind组合/扩展/更改矢量,数据帧和矩阵:

    > v <- 1:5
    > x <- 6:10
    > bound <- cbind(v, x)
    > bound
         v  x
    [1,] 1  6
    [2,] 2  7
    [3,] 3  8
    [4,] 4  9
    [5,] 5 10
    > bound <- rbind(v, x)
    > bound
      [,1] [,2] [,3] [,4] [,5]
    v    1    2    3    4    5
    x    6    7    8    9   10

    因素 (Factors)

    Factors are vectors with labels. This is different than character vectors or even numeric ones because they’re what R folks call “self describing”, allowing R’s functions to automatically make more sense of them than they would of the other types. They’re built with the factor function which needs to be fed a vector as an argument:

    因素是带有标签的向量。 这与字符向量甚至是数字向量都不同,因为它们是R族人所说的“自我描述”,这使得R的函数能够自动地比其他类型更容易理解它们。 它们是用factor函数构建的,需要将其作为参数传递给向量:

    > f <- factor(c("Hello", "World", "Hello", "Annie", "Hello", "World"))
    > f
    [1] Hello World Hello Annie Hello World
    Levels: Annie Hello World
    > table(f)
    f
    Annie Hello World 
        1     3     2

    Levels lists out the unique elements in the factor. The table function grabs a factor and builds a table consisting of the various levels in the factor, and the number of their occurrences in the factor.

    级别列出了因素中的独特元素。 table函数获取一个因子并构建一个表,该表包含该因子中的各个级别以及该因子中它们出现的次数。

    I personally haven’t found a use for factors yet in my projects, but I’m learning about them.

    我个人尚未在项目中发现因素的用途,但我正在学习有关因素

    结论 (Conclusion)

    In this article, we covered the basic data types in R and the essentials of using RStudio. You are now armed with all the knowledge you need to start some basic data operations, something we’ll look into in the very next post. Remember that all the functions we covered above are fully searchable in the help files with ?function where “function” is the function name.

    在本文中,我们介绍了R中的基本数据类型以及使用RStudio的要点。 现在,您已经掌握了开始一些基本数据操作所需的所有知识,我们将在下一篇文章中介绍这些知识。 请记住,我们上面介绍的所有功能都可以在带有?function的帮助文件中进行完全搜索,其中“ function”是功能名称。

    When learning a programming language, it is customary to teach data types first, logical operators second and control structures third before moving into advanced things like functions and classes, but in this case, I believe we’ve laid a decent enough foundation to jump straight into the fire and learn by example. We’ll cover all that on real, practical data – but only if you’re interested.

    在学习编程语言时,习惯上先讲授数据类型,然后讲授逻辑运算符,然后讲授控制结构,然后再学习诸如函数和类之类的高级内容,但是在这种情况下,我相信我们已经奠定了足够不错的基础,可以直接跳跃陷入困境,以身作则。 我们将在真实,实用的数据上涵盖所有内容-但前提是您有兴趣。

    Let us know what you thought about this post – comment below, reshare it, or just “heart” it in the forums – if there’s plenty of interest in learning R in our SitePoint audience, we’d be more than glad to go into detail.

    让我们知道您对这篇文章的想法–在下面评论,转发或在论坛中“发表” –如果在SitePoint受众群体中学习R有很多兴趣,我们将非常乐于详细介绍。

    翻译自: https://www.sitepoint.com/introduction-r-rstudio/

    r语言和rstudio

    更多相关内容
  • R语言开发平台 RStudio-1.3.1093
  • 流行学习,R语言模拟生成Swissroll,Helix, Twinpeaks,圆球等数据,通过pca,lle,isomap,tsne等方法对数据降维并可视化。
  • R语言语法基础

    2021-07-01 04:31:57
    第01章:R语言简介 第02章:R语言安装和下载 第02章:RStudio的使用教程 第03章:R中的数据 (1):从存储角度划分 (2):从结构角度划分(向量) (3):从结构角度划分(矩阵) (4):从结构角度划分(数组) (5)...
  • R语言创建新变量方法

    2021-01-07 04:18:49
    R语言创建新变量方法 在数据分析中,可能需要对数据进行求和、求均值等处理,并且将处理后的数据重新保存到原来的数据框中,这里提供三种可供解决的方法: 数据框$变量名 <- 表达式。若原数据框中含有该变量,则...
  • R语言RStudio的安装包及相关资源,详细安装教程及入门使用请继续参看博客本人博客。
  • R3.6.1、Rstudio安装包

    2020-11-10 14:12:03
    R是用于统计分析、绘图的语言和操作环境。R是一个用于统计计算和统计制图的优秀工具。包括:有效的数据存储和处理功能,一套完整的数组(特别是矩阵)计算操作符,拥有完整体系的数据分析工具,为数据分析和显示提供...
  • R语言二进制发行版(R i386 4.0.5)
  • R语言的最新版Rtools4.0

    2020-09-18 11:17:58
    由于官网上下载Rtools很慢,提供一个最新版供大家下载,安装的时候只用记得把系统路径选项点上就可以了。
  • PyCharm 首次安装使用报错“No R interpreter defined: Many R related...”解决方案 Download and Install R forwindows
  • R语言mvstats包.zip

    2020-04-04 01:47:38
    王斌会教授的R语言mvstats包,R软件没有自带mvstats包,多元统计分析可用到这个包,有需要的同学可以自行下载!
  • R+RStudioR-4.0.0-win+RStudio-1.2.5042) R+RStudioR-4.0.0-win+RStudio-1.2.5042) R+RStudioR-4.0.0-win+RStudio-1.2.5042)
  • 该资源内涵读取数代码的示例,可以读取txt、csv、tsv、nc栅格数据等数据,不用于商业,适合入门新手下载学习,大佬请绕路,
  • txt文件转入r语言

    2021-01-05 21:42:45
    适合我发的第一篇博文的练习
  • 该资源是2020参加美赛所用代码,主要是做的文本分析,LDA,词云,分类统计,时间序列。内含原始数据和代码说明。
  • RStudioR的集成开发环境(IDE)。它包括一个控制台,突出显示语法的编辑器(支持直接执行代码)以及用于绘图,历史记录,调试和工作区管理的工具。单击此处查看更多RStudio功能。 RStudio提供开源和商业版本,...
  • r语言循环语句

    2019-02-17 22:07:41
    R语言,循环条件控制语句,用户可以查阅到不同类型的R语言循环语句的使用方法
  • R语言Rstudio入门小建议(一)

    千次阅读 2021-11-20 12:05:49
    R语言Rstudio入门小建议(一)前言相关背景及学习资料基本操作数据导入包(package)外部数据的导入数据类型和数据转换Rstudio的辅助功能强大的查询功能其余功能后记 前言 这学期选修了回归分析,恰巧大作业要用到...

    前言

    这学期选修了回归分析,恰巧大作业要用到R语言去实现,便把积灰已久的RStudio重新寻找了回来。R软件是统计课程的得力工具(数学专业算是,医学专业的话可能更多的是用SAS,SPSS等),如何快速地上手这门实用的软件呢?接下来,我将从我的使用经验与参考书来讲一讲。

    相关背景及学习资料

    百度百科对R的评价为:R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由免费源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
    在这里我想点赞一下GNU源代码开放精神(与正文内容无关,读者选择性阅读),这种源代码开放的精神,一般被称为 open source,这种观念源于Richard Stallman。他认为私藏源代码是一种违反人性的罪恶行为。他认为如果与他人分享源代码,便可以让其他人从中学习,并回馈给原始创作者。封锁源代码虽然可以程度不一地保障 “ 智慧可能衍生的财富 ”,却阻碍了使用者从中学习和修正错误的机会。Stallman于1984年离开麻省理工学院,创立自由软件基金会,写下了著名的GNU宣言,开始名为GNU的开放改革计划。GNU这个名称是计算机族的幽默展现,代表了 GUN is Not Unix。当时Unix是计算机界的主流操作系统,由AT&T实验室创造,这原本只是一个学术上的练习产品,AT&T将它分享给许多研究人员,但是当所有研究与分享使这个产品越变越美好时,AT&T开始思考是否追加投资,并对从中获利抱以预期。于是开始要求大学校园内的相关研究人员签约,要求他们不得公开或透露UNIX源代码。Stallman将AT&T的这种行为视为思想钳制,以及一种伟大传统的沦陷。在此之前,计算机界的氛围是大家无限制地共享个人成果(当然是指最初的源代码)
    上文有关GNU的论述摘录自侯健的《STL源码剖析》
    正是由于R源代码开放的特性,当我们简单掌握入门语法后,可以方便的通过查看函数源代码来进行R的进一步学习。

    参考书及学习资料:
    R官网和RStudio官网都提供了免费的书籍,推荐看Rstudio的,相比R官网里的比较新,链接在此:https://www.rstudio.com/resources/books/
    在这里插入图片描述
    基本语法和基础操作的学习,我不推荐看Rstudio提供的书籍,而是参考R官网中Document下的manual,如果觉得英语阅读实在有难度,建议在菜鸟教程或其他网站找到简单的中文教程。
    这里还推荐一本书(但书中只有一小部分是入门级别的):《R语言实战》(中译本)可以在 鸠摩搜书 上找到资源。
    之前我看过《R for data science》,这本书抛开操作,它更多地是为我们展示了一个统计方法解题过程,作者的观点是具有很强启发性的,至于其余的书我实际上还没看过。
    在这里插入图片描述
    讲了这么多,其实还有一个地方得提一下——有些人可能对计算机不太熟悉,不是很清楚R和Rstudio的关系:R是R语言本身自带的编译器,但这个编译器有许多不足之处,便有人对其进行改造,而RStudio便是改装后的编译器,聪明的你一定想到了不同的改造和扩充不就会产生不同的软件吗?确实是这样的,除了Rstudio之外,我们常见的还有 Tinn-R, R commander,这里只是简单叙述,想深入了解的可以自行搜索。

    基本操作

    数据导入

    包(package)

    如果有学过python或Java,相信对于package的概念并不陌生
    包是 R 函数、实例数据、预编译代码的集合,包括 R 程序,注释文档、实例、测试数据等。R 语言相关的包一般存储安装目录下对 “library” 目录,默认情况在 R 语言安装完成已经自带来一些常用对包,当然我们也可以在后期自定义添加一些要使用的包。R 语言完整的相关包可以查阅:https://cran.r-project.org/web/packages/available_packages_by_name.html

    > .libPaths()
    [1] “/Library/Frameworks/R.framework/Versions/4.0/Resources/library”

    我们可以使用以下函数来查看编译环境已载入的包:

    > search()
    [1] “.GlobalEnv” “package:stats” “package:graphics”
    [4] “package:grDevices” “package:utils” “package:datasets”
    [7] “package:methods” “Autoloads” “package:base”

    但在Rstudio下没必要这么麻烦,直接在package下查看就行了,也可以通过简单打勾、取消打勾加载包
    在这里插入图片描述
    这里的简单逻辑是这样的你要调用一个包,首先你得有这个包,没有的话就得下载( install.package( ) ),下载完这个包后并不意味着我们可以直接使用它,而是先要加载这个包( library( ) ),这样子做是合理的,要是每个包在未使用前都加载完毕,一是对性能有影响,二是很容易造成方法重名等问题(因为会多很多个重载函数)。

    注:①判断有没有这个包,可以直接用library()更容易,如果没有这个包它会提醒你,并询问你是否安装,R自带的编译器就没有这个功能。
    ② 本来是想放在查询里面的,这里提前说,如何查看一个包的信息
    假如我们要查看TSA的里面有什么数据集及相关信息,

    >library(help = "TSA")
    

    在这里插入图片描述
    对于R的学习——我觉得一个很重要的能力——有效读取帮助信息,也是很重要的。

    外部数据的导入

    在R语言中,我们可以从存储在R语言环境外的文件中读取数据。 我们还可以将数据写入将被操作系统存储和访问的文件。 R语言可以读取和写入各种文件格式,如csvexcelxml等。以csv文件为例:
    第一步并不是直接将数据读入,能将数据顺利读入的前提是数据在Rstudio的搜索路径上,Rstudio提供的File功能可以让我们很容易的调出数据,因此,假如我们的数据并没有在搜索路径上,我们可以把数据文件加进File下的某个文件,或者添加File的搜索路径,通过 New Folder
    在这里插入图片描述
    我们也可以利用函数进行同样操作
    获取和设置工作目录:使用​getwd()​函数检查R语言工作区指向的目录。 您还可以使用​setwd()​函数设置新的工作目录。

    # Get and print current working directory.
    print(getwd())
    
    # Set current working directory.
    setwd("/web/com")
    
    # Get and print current working directory.
    print(getwd())
    

    第二步才是读取数据,自定义一个变量去存放

    # 读取CSV文件
    # 以下是​read.csv()​函数的一个简单示例,用于读取当前工作目录中可用的 CSV 文件 -
    data <- read.csv("input.csv")
    print(data)
    

    数据类型和数据转换

    关于数据类型,其实有一个细节需要注意一下,变量并不会声明为某种数据类型。变量分配有 R 对象,R 对象的数据类型变为变量的数据类型。按性质来分,基本数据类型由数字、逻辑、文本构成;按存储来分,我们的基本数据类型有矢量(vector),列表(list),矩阵(matrix),数组(array),因子(factor),数据帧(data frames)。但实际上,我个人觉得这些东西也没必要去硬记。一方面,开头就搞这些很理论的东西会大大挫伤学习兴趣,即使是隐式的。另一方面,一个变量其R对象是什么数据类型无非意味着它具有这个数据结构下所封装的方法(函数等)。我们需要意识的是,一数据类型的种类实际上是多到你不可能都十分了解的,二数据类型之间的相互转换为数据类型多样性提供了一种可行的解决方案,假使,一个我们不熟悉的数据类型可以转换成我们熟悉的基本数据类型,如果是vector那是最好了,我们可以迅速对这个不熟悉的数据类型进行相应操作。

    常见的数据类型转换有as.vector(),这里不展开具体论述,但给出一个例子:

    > library("TSA")
    > data(tempdub)
    > month=season(tempdub)
    > model=lm(tempdub~month)
    > plot(y=rstudent(model),x=as.vector(time(tempdub)),type='o')
    

    具体的细节不讲,我们把目光转到x=as.vector(time(tempdub)),实际上,time(tempdub)的类型是 “ts”(不是基本数据类型,是时间序列特有的一种类型),但是 plot() 本身没有参数为 “ts” 的重载函数,因此,我们需要借助as.vector(),将其转换为矢量类型,以保证 plot() 函数的顺利执行。

    Rstudio的辅助功能

    强大的查询功能

    授人以鱼不如授人以渔,学会自己查询我觉得是很重要的。而Rstudio相对于R在帮助文件上,会有很大的提升,快捷键cirl+3可以让我们迅速地切换到帮助窗口,这里顺便介绍一个利用快捷键提高工作效率的方法——利用快捷键灵活实现界面切换界面的放大缩小。不要看这个改进微不足道,实际上是很好用的。利用cirl+number(1,2,3,4,5,6,7,8,9)实现界面的切换,一般常用的是2,3,6。利用cirl+shift+number(1,2,3,4,5,6,7,8,9)实现界面的缩放,请读者自行尝试。

    其余功能

    抱歉的是,我对于Rstudio的探索也仍在起步阶段,本来是想想讲一讲Rmarkdown,事实上,我也还没有接触过。之前一直是用matlab做的作业。

    后记

    必须说写下这篇文章,我查阅了不少资料,也从中学得一些东西。Rstudio官网提供的书籍实际上是很好用的,但也正是这个原因,要完全读懂这些书需要花费一定的时间与不停的自我尝试,写在这里也希望能勉励自己后续进行学习吧。这个系列我还会写下去,但更新速度势必是很慢的,因为各种原因。共勉。

    展开全文
  • R语言画心形图-表白好工具,放在合适的地方,可以起到意想不到的效果
  • R语言公式表达写法

    2018-07-12 17:20:01
    R语言数学公式表达方式快查,方便记忆以及查询,对于数据科学研发者有好处
  • RStudio是用于R编程的开源工具... 在此大数据分析R语言RStudio使用教程文章中,我们将介绍RStudio免费版本的一些最佳功能:RStudio Desktop。我们收集了一些RStudio的重要技巧,窍门和快捷方式,可快速将您变成RStu...

      RStudio是用于R编程的开源工具。如果您对使用R编程感兴趣,则值得了解RStudio的功能。它是一种灵活的工具,可帮助您创建可读的分析,并将您的代码,图像,注释和图解保持在一起。

      在此大数据分析R语言RStudio使用教程文章中,我们将介绍RStudio免费版本的一些最佳功能:RStudio Desktop。我们收集了一些RStudio的重要技巧,窍门和快捷方式,可快速将您变成RStudio高级用户!

      1.在窗口窗格之间快速导航

      RStudio窗格可让您访问有关项目的重要信息。知道如何在窗格之间切换而无需触摸鼠标来移动光标将节省时间并改善工作流程。使用这些快捷方式可以在窗格之间即时移动:

      1)Control/Ctrl + 1:源代码编辑器(您的脚本)

      2)Control/Ctrl + 2: 安慰

      3)Control/Ctrl + 3: 救命

      4)Control/Ctrl + 4:历史

      5)Control/Ctrl + 5:文件

      6)Control/Ctrl + 6:情节

      7)Control/Ctrl + 7:套餐

      8)Control/Ctrl + 8: 环境

      9)Control/Ctrl + 9:查看者

      如果您希望一次只看到一个窗格,请添加Shift到上述任何命令中以最大化窗格。例如,输入Control/Ctrl + Shift + 1以最大化您正在使用的R脚本,笔记本或R Markdown文件。

      (旁注:+我们在快捷方式中显示的意思是“和”,因此不需要实际键入+键。)

      但是,如果您想返回标准的四窗格视图怎么办?没问题!输入Control/Ctrl + Shift + 0:

    bdedadbb5fcf4f4afe33e1eb32f7078a.png

      2.键盘快捷键

      了解RStudio键盘快捷键将在编程时节省大量时间。RStudio提供了许多有用的快捷方式,您可以通过顶部的菜单访问它们Tools > Keyboard Shortcuts Help。

      访问RStudio键盘快捷键的另一种方法是使用快捷键!要访问快捷方式,请Option + Shift + K在Mac或Alt + Shift + KLinux和Windows上输入。

      以下是一些我们最喜欢的RStudio快捷方式:

      1)在Mac或Linux和Windows上,将

      2)插入管道运营商%>%与Command + Shift + M在Mac上,或Ctrl + Shift + M在Linux和Windows。

      3)Command + Enter在Mac或Control + EnterLinux和Windows 上运行当前代码行。

      4)Command + A + Enter在Mac或Control + A + EnterLinux和Windows 上使用运行所有代码行。

      5)重新启动当前的R会话,然后Command + Shift + F10在Mac或Control + Shift + F10Linux和Windows上重新开始。

      6)Command + Shift + C在Mac或Control + Shift + CLinux和Windows 上使用注释或取消注释行。

      7)试图记住您之前提交的命令吗?Command + [up arrow]在Mac或Control + [up arrow]Linux和Windows 上,从控制台搜索命令历史记录。

      还有许多有用的快捷方式可用,但是通过掌握上述快捷方式,您将成为RStudio高级用户!

      RStudio快捷方式的另一个重要资源是此处提供的官方RStudio备忘单。

      3.通过代码完成节省时间

      开始键入后,将弹出一个建议窗口,其中包含匹配的函数,对象和代码片段名称。您可以使用向上或向下箭头在列表中切换,然后单击return/Enter以进行选择。

      另外,您可以利用称为模糊匹配的非常酷的功能,该功能使您可以通过输入与匹配项唯一的字母来缩小搜索范围。您不需要输入所有字母,只要您输入的内容与字符串的顺序匹配即可。

      让我们看一下这些代码完成方法是如何工作的。首先,我们将installed.packages()通过键入部分函数名称来选择函数,然后使用箭头进行选择。接下来,我们将使用模糊匹配仅输入instd以进一步缩小选择范围:

    28b150618548dfd5708a7af99f363512.gif

      4.快速查找文件和功能

      在RStudio中,无需摸索文件夹结构来查找文件,也无需挖掘功能!输入快捷方式control/ctrl + .以打开Go to File/Function窗口,然后使用模糊匹配技能来缩小选择范围:

    6e61295fb2004474f6b622530c5e30f2.gif

      5.自定义外观

      RStudio提供了大量选项,可根据您的喜好自定义外观。在RStudio标签下,导航以Preferences > Appearance浏览许多可用选项。RStudio的一个不错的功能是您可以快速单击Editor theme窗口以预览每个主题。

    a36e818702a25d28a65c4c79232615f8.png

      6.轻松链接到文档

      在Help右下方窗口的标签下,您会找到指向R函数和R软件包在线文档的便捷链接。例如,如果我们install.packages()使用搜索栏搜索有关功能的信息,则返回官方文档:

    fd5227a9bc017d621625bb6af0d5f918.png

      我们还可以在Help选项卡中访问文档,方法是在软件包或函数之前添加?,例如,?install.packages然后在控制台中运行命令。无论使用哪种方法,RStudio都会在您键入时自动填充匹配的函数名称!

      7.预览并保存您的绘图

      在RStudio会话期间生成的图将显示在Plots右下方窗口的选项卡下。在此窗口中,您可以通过放大和缩小来检查图。如果要保存绘图,则可以将绘图另存为PDF或图像文件。

    930eaa08461b1f24e4ec0aa9ed6940e3.png

      8.导入和预览数据集

      RStudio使导入和预览数据集变得容易,无需编码!在Environment右上方窗口的选项卡下,具有使您可以导入数据集的功能。此功能支持多种格式:

    18f625a80aa93d73e379e4612b4a3a14.png

      您甚至可以在加载数据集之前对其进行预览:

    52b81415a06df100a1fd8247f4637db6.png

      在将数据集加载到RStudio中之后,您可以使用View()命令或单击数据集的名称来查看它:

    d6d6bf437afdcbb9cbcd950bc479b31f.png

      9.一键查看命令历史记录

      之前,我们从控制台学习了命令历史记录的快捷方式。RStudio还使您可以通过单击History选项卡在右上窗口中查看整个命令历史记录:

    f5613cbc8c0811d6e04175904f3fa468.png

      10.保存您的“真实”工作。删除其余的。

      练习良好的内务管理,避免将来遇到不可预见的挑战。如果创建值得保存的R对象,请在R脚大数据分析R语言RStudio使用教程件中捕获生成该对象的R代码。保存R脚本,但不要保存创建对象的环境或工作空间。

      为防止RStudio保存工作区,请打开Preferences > General并取消选择.RData在启动时还原到工作区的选项。确保指定您永远不要保存工作空间,如下所示:

    615ef579b92edd534485b880ce565c24.png

      现在,每次打开RStudio时,都会从一个空会话开始。您以前的会话生成的代码都不会被记住。R脚本和数据集可用于从头开始重新创建环境。

      11.组织项目工作

      RStudio提供了强大的功能,可让您保持井井有条;项目。在进行多个分析时,保持有条理很重要。RStudio的项目使您可以将所有重要工作放在一个地方,包括代码脚本,绘图,图形,结果和数据集。

      导航到FileRStudio中的选项卡,然后选择,创建一个新项目New Project...。您可以选择在新目录或现有目录中创建新项目。如果您使用的是R软件包或Shiny Web应用程序,则RStudio提供专用的项目类型。

      当您需要与同事共享工作时,RStudio项目非常有用。您可以将项目文件(以结尾.Rproj)与所有支持文件一起发送,这将使您的同事更轻松地重新创建工作环境并重现结果。

      但是,如果您希望进行无缝协作,则可能需要将软件包管理引入工作流程中。幸运的是,RStudio提供了一个有用的软件包管理工具renv,该工具现已与RStudio项目兼容。renv接下来我们将介绍。

      12.使用renv管理软件包版本

      我们很喜欢AAA教育的R,但是管理程序包版本可能是一个挑战!幸运的是,得益于RStudio 的renv(“可复制环境”)软件包,R软件包管理比以往任何时候都容易。现在,RStudio包含对的内置支持renv。

      renv在本大数据分析R语言RStudio使用教程中,我们不会详细介绍如何与RStudio项目一起使用,因为RStudio在我们提供的链接和小插图中为您提供了所需的信息。但是,renv与RStudio一起使用可以使R包管理更加容易,所以我们想告诉您!

      该renv软件包将替代RStudio曾经维护的Packrat软件包。

      要使用renv与您的RStudio项目包升级到RStudio的最新版本,然后安装renv与包library("renv")。从那里,您可以选择renv与所有新项目一起使用:

    404497d99ffe2d3fa0596076530d5043.png

      如果您想renv与现有项目一起使用,请浏览Tools > Project Options > Environments并选中相应的框以启用renv:

    10a4ed18bb939d5549c8d7cb52d620e8.png

      13.在RStudio中使用GitHub管理版本控制

      除了在RStudio中管理软件包外,您还可以将GitHub与RStudio一起使用,以维护项目和R脚本的版本控制。看看这篇文章从GitHub和这篇文章从RStudio所有你需要的Git集成到您的工作流程RStudio的信息。

      14.代码段

      RStudio提供了一个非常有用的功能,用于插入称为代码段的通用代码块。我们的最爱之一是该lib代码段,可在调用library()函数加载R包时为您节省一些输入时间:

    bbcb9959c9ff4904a6637b69131ef1b5.png

      按下return键以选择代码段后,library()函数将被加载并且光标已定位,因此您可以立即开始输入要加载的包的名称:

    1b03a9c26a30982ec672da3a6d85197e.png

      我们另一个喜欢的fun片段是提供用于编写​​自定义函数的基本模板的片段。您甚至可以添加自己的代码段!要了解更多信息,请查看这篇文章从RStudio代码片段。

      15.深入研究函数的源代码

      如果您想研究某个函数的源代码,请将光标移至所需的函数并输入F2(在Mac上,您可能需要输入fn + F2)。此功能甚至适用于从您使用的任何R包加载的功能。

      16.函数提取

      如果您已经编写了要转换为功能的代码块,请突出显示该代码块,然后control + option X在Mac Ctrl + Alt + X上的Linux / Windows上输入。将会出现一个弹出窗口,要求您选择一个函数名称。

    40d573ac284531414748d209c63a8523.png

      选择功能名称后,将代码自动添加为功能所需的输入和代码结构。

    a60ac7bf4a7d2727f9acb2e8c03a0da5.png

      如果您有要提取的变量,请突出显示该变量,然后control + option V在Mac Ctrl + Alt + V上的Linux / Windows上输入。

      17.重命名范围

      在某些时候,您可能需要更改函数名称或其中一个函数中使用的变量。但是使用查找和替换来执行此操作可能会令人不安!幸运的是,RStudio可以在范围内重命名。这意味着您的更改将仅限于感兴趣的变量或功能。大数据分析R语言RStudio使用教程https://www.aaa-cg.com.cn/data/2394.html这样可以防止您意外替换代码脚本中其他位置的同名变量。要使用此功能,请选择要更改的函数或变量,然后control + shift + option + M在Mac或Ctrl + Shift + Alt + MLinux / Windows上输入。

    6e30daf4666ccbed32daa33406146a2d.png

      18.多光标支持

      RStudio支持多个光标。按住optionMac或AltWindows / Linux时,只需单击并拖动鼠标。

    90215a5d327fd1a9ee039143c5b7f84b.png
    2d1670b9e67119f56f8f44caea4ab7c4.png

      19.将Python与RStudio一起使用并网状

      RStudio支持python编码。 在RStudio中启动并运行python的过程涉及以下常规步骤:

      安装基本版本的Python

      安装pip和virtualenv

      在RStudio项目中创建Python环境

      激活您的Python环境

      在您的环境中安装所需的Python软件包

      安装并配置R Reticulate软件包以使用Python

    4aca78673e0970af28343799d763a910.png

      大数据分析R语言RStudio使用教程提供了上述步骤所需的代码。 我们尝试了一下,仅用了几分钟就可以在RStudio中运行python了:

      20.使用DBI包查询SQL

      有很多方法可以在RStudio中运行SQL查询。 从R的DBI包开始,以下是三种最受欢迎的方法。

      首先,生成一个内存中的SQL数据库,以在所有SQL查询示例中使用。 您将生成一个著名的“ mtcars”数据集的SQL数据库。 这是代码:

    c051a224000a4461c9074a4d77a42e01.png

      现在编写一个SQL查询,以使用四缸引擎从数据库中选择所有汽车。此命令返回一个数据框,您将另存为dbi_query:

    fac7d62b8575ad951bc6cce0bedb0362.png

      数据框如下所示:

    caea2efad1a5cf87078cfafd059d2ac5.png

      21.使用R Markdown或使用R Notebook查询SQL

      通过创建{sql}代码块,可以在R Notebook或R Markdown中获得相同的结果。 使用第一个示例中的连接和数据库,运行以下代码:

    76b3ebd2408c2bd0d2e1c55ae9922f0a.png

      指定output.var =“ mt_cars_df”将查询结果保存到数据框。此数据框是标准R数据框,与您在前面的示例中生成的数据框相同。 您可以在R代码块中使用此数据帧来执行分析或生成ggplot,例如:

    a2b2dd3d800d14d206aefef282f9fe84.png
    b249ef16ef4dad92652feace01dc3a2d.png

      22.使用dbplyr查询SQL

      最后,您将使用dbplyr软件包编写标准的dplyr命令,这些命令将转换为SQL! 再次使用第一个示例中的连接和数据库,您可以编写一个标准filter()调用来查询具有四个汽缸的汽车,这将返回一个列表对象:

    b4efa909b640adf02c987189b99a1198.png

      如果要查看此命令转换为的SQL代码,可以使用dbplyr中的show_query()函数:

    bad4fec81899b8911f0db1078a859f98.png

      对查询结果满意后,可以使用dbplyr中的collect()函数将结果另存为数据框:

    38707719c21b79a5d6c6e72a588e9408.png

      你有它! 查询具有类似结果的SQL数据库的三种不同方法。 示例之间的唯一区别是dbplyr方法返回一个小标题,而前两个方法返回一个标准R数据帧。

      要了解有关使用RStudio查询SQL数据库的更多信息,请查阅大数据分析R语言RStudio使用教程

      23.将它带到云端!

      RStudio现在提供了一个名为RStudio Desktop的基于云的版本,您猜对了……RStudio Cloud。 RStudio Cloud允许您在RStudio中进行编码,而无需安装软件,只需要一个Web浏览器。

      RStudio Cloud中的工作被组织到类似于桌面版本的项目中,但是RStudio Cloud使您可以指定希望用于每个项目的R版本。

      RStudio Cloud还可以轻松,安全地与同事共享项目,并确保每次访问项目时都能完全再现工作环境。

      如您所见,RStudio Cloud的布局与RStudio Desktop非常相似:

    8fc5d2743ef58b66222393514753bc32.png

    相关推荐

    大数据分析R Markdown的使用技巧

    大数据分析使用numpy在pandas dataframe上添加列

    大数据分析Python PyAudio库语音API转文字教程

    大数据分析师面试求职攻略

    大数据分析机器学习的数据清理和准备

    0基础小白必知的10种机器学习算法

    展开全文
  • R语言安装~R,Rstudio

    2022-02-11 09:51:36
    一、R语言安装 首先进入官网:https://cran.r-project.org 下载相应版本的安装包 点击base 点击Download R4.1.2 for Windows,即可开始下载 下载完成后,点击该安装包,开始下载 我要安装的是64...

    一、R语言安装

    首先进入官网:https://cran.r-project.org

    下载相应版本的安装包

    点击base

     点击Download R4.1.2 for Windows,即可开始下载

    下载完成后,点击该安装包,开始下载

     

     

    我要安装的是64bit,把32bit的勾划掉,继续点击下一步,直到安装完成

     

     

     二、Rstudio安装

    下载地址为:Download the RStudio IDE - RStudio

    点击free下的download

    选择合适的版本,开始下载安装包

    下载完成后,点击安装包,开始安装

     

    点击下一步,直到安装完成

     

     

    展开全文
  • R语言 神经网络

    2017-12-24 16:22:14
    R语言 神经网络,利用r语言做前馈反向传播神经网络算法
  • R语言 并行计算 向量是R语言最基本的数据类型,它的下标从1开始,正的下标用于提取向量中对应的元素,负的下标则去掉向量中对应的元素,通过逻辑运算提出向量中满足条件的元素
  • R语言RStudio)Console控制台界面乱码(繁体字乱码) library(tidyverse) Attaching packages 鈭?[30m ggplot2 3.3.5 原本应该是“√”,显示为“鈭?[30m” ①设置global options - code - saving - default text ...
  • R语言小波分析wavelet

    2018-05-08 16:37:02
    R语言小波分析wavelet
  • RRstudio安装包.zip

    2020-09-07 15:48:07
    包含RRstudio安装包 包含RRstudio安装包 包含RRstudio安装包 包含RRstudio安装包 包含RRstudio安装包 包含RRstudio安装包 包含RRstudio安装包 包含RRstudio安装包 包含RRstudio安装包
  • R语言——R和RStudio软件下载及安装

    千次阅读 2020-12-08 11:47:28
    R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和...
  • R语言 - 安装R及RStudio(Linux、Windows双重记录)

    千次阅读 多人点赞 2019-07-05 08:40:48
    x64 Service Pack 1 软件 软件版本 备注 R 3.6.0 当然用目前最新的,老版本踩过坑 RStudio 1.2.1335 这是C/S模式 Rtools 35 R语言编译工具 以下安装方式二选一就行 想装逼的,请直接选择步骤[2. 安装R及RStudio...
  • ☆ 资源说明:☆ [奥莱理] RStudio 入门教程 (英文版) [奥莱理] Getting Started with RStudio (E-Book) ☆ 出版信息:☆ [作者信息] John Verzani [出版机构] 奥莱理 ...[图书语言] 英语 [图书格式] PDF 格式

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,507,948
精华内容 3,003,179
关键字:

\r