个人理财 你可以在R中完成的10件事你可以在Microsoft Excel中完成

你可以在R中完成的10件事你可以在Microsoft Excel中完成

目录:

视频: KMS破解器(破解Office、Windows) 2024

视频: KMS破解器(破解Office、Windows) 2024
Anonim

电子表格可能是使用最广泛的PC应用程序之一 - 出于很好的理由:电子表格使得在表格上执行计算和其他操作变得非常容易数据。但是电子表格也会带来一些风险:它们很容易腐败,很难调试。好消息是,您可以使用R来完成许多与电子表格相同的操作。

添加行和列总计

<! --1 - >

您可能经常在电子表格中执行的一项任务是计算行或列总计。最简单的方法是使用函数rowSums()和colSums()。同样,使用rowMeans()和colMeans()来计算均值。

在内置的数据集虹膜上试试。首先,删除第五列,因为它包含描述虹膜种类的文本:

虹膜。 num < - iris [,-5]

然后计算每列的总和和平均值:

colSums(iris。num)> colMeans(iris。num)

这两个函数非常方便,但是可能需要为每一列或每行计算一些其他的统计量。遍历数组或数据框的行或列是一种简单的方法:apply()函数。例如,获取列的最小值与对数据的第二维应用min()函数相同: >> apply(iris。num,2,min)> apply(iris。num,2,最大)

格式化数字

你可以使用format()把你的数字转换成漂亮的文字,准备打印。这个函数需要一些参数来控制结果的格式。这里有几个:

trim

  • 一个逻辑值。如果为FALSE,则会添加空格,以便将结果右对齐。如果为TRUE,则取消前导空格。 数字

  • 要显示的数字值的有效位数。 nsmall

  • 小数点后的最小位数。 另外,可以用小数点控制小数点的格式。标记,间隔

之前的标记与 小数点之间的标记。标记, 之后的间隔 之间的标记小数点。标记。 例如,您可以用逗号作为小数点,空格作为大标记,点作为小标记打印数字12345. 6789:

格式(12345。6789,digits = 9,decimal。标记=“,”,+大。标记=“”,小。标记=“。”,小。区间= 3)[1]“12 345,678. 9”

作为一个更实际的例子,使用mtcars中某些列的方法,然后用小数点后两位数字打印结果,使用以下命令: >> x format(x,digits = 2,nsmall = 2)mpg cyl disp hp“20。09“”6. 19“”230。 72“”146。 69“

请注意,结果不再是一个数字,而是一个文本字符串。所以,当你使用数字格式时要小心 - 这应该是你的报告工作流程的最后一步。

如果您熟悉使用类似于C或C ++的语言进行编程,那么您也可能会发现sprintf()函数有用。这个包装允许你把你的格式化的数字直接粘贴到一个字符串中。

以下是将数字转换为百分比的示例: >> x sprintf(“%。1f %%”,100 * x)[1]“50。 0%“”51。 0%“”52。 0%“”53。 0%“”54。 0%“”55。 0%“

这就是它的作用:sprintf()的第一个参数表示格式 - 在本例中为”%“。 1f %%“。格式参数使用特殊的文字,表示函数应该用一个变量替换这个文字,并应用一些格式。文字始终以%符号开始。所以,在这种情况下,%。 1f表示将第一个提供的值格式化为小数点后一位的固定点值,%%是一个文本,表示打印%。

将某些数字格式化为货币 - 在这种情况下,美元 - 使用:

设置。种子(1)> x sprintf(“$%3。2f”,x)[1]“$ 265. 51”“$ 372. 12”“$ 572. 85”“$ 908. 21”“$ 201 68 “

sprintf()函数为您提供了一种将任何变量的值粘贴到字符串中的替代方法: >> stuff price sprintf(”%s cost $%3。2f“,stuff,price)[1]“面包花费$ 2.10”“cookies花费$ 4.00”

这里发生的是,因为你向sprintf()提供了两个向量(每个都有两个元素),所以你的结果是一个有两个元素的向量。 R遍历元素并将它们放入sprintf()文字中。

你可以使用paste()和format()来做所有事情,你可以用sprintf()来完成,所以你不需要使用它。但是,当你这样做,它可以简化你的代码。

排序数据

要对R中的数据进行排序,请使用sort()或order()函数。

要按列hp的递增或递减顺序对数据帧mtcars进行排序,请使用以下命令:(mtcars,mtcars [order(hp, = TRUE),])

使用if

进行选择电子表格让您能够执行各种“如果? “分析。这样做的一种方法是在电子表格中使用if()函数。 R还具有if()函数,但它主要用于脚本中的流量控制。因为您通常要对R中的整个向量执行计算,所以使用ifelse()函数通常更合适。

下面是使用ifelse()在数据集mtcars中标识具有高燃料效率的汽车的示例: >> mtcars < - transform(mtcars,+ mpgClass = ifelse(mpg mtcars [mtcars $ mpgClass ==“High” ,]

计算条件合计

你可能在Excel中做了很多其他的事情,是用函数sumif()和countif()计算条件和和计数。

你可以在在R中有两种方法:

使用ifelse。

简单地计算一部分数据的兴趣度量。假设您想计算mtcars中的燃油效率条件平均值。你用mean()函数做这个。现在,为了获得150马力门槛两侧的燃油效率,请尝试以下方法:

(mtcars,mean(mpg))[1] 20. 09062> with(mtcars,mean(mpg [hp with(mtcars,mean(mpg [hp> = 150]))[1] 15. 40667

计算向量中的元素个数与询问其长度是一样的,这意味着Excel函数countif )具有长度为R的等效长度(): >>(mtcars,长度(mpg [hp> 150]))[1] 13

移位列或行

有时需要将数据在R中,转置矩阵的函数为t(): >> xx [,1] [,2] [,3] [1,] 1 5 9 [2,] 2为了得到矩阵的转置,使用t(): >> t(x)[,1] [,2] [, 3] [,4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12

你也可以用t()来转置数据帧,但是当你做这个转换的结果总是一个矩阵(或数组),因为数组总是只有一个类型的变量,如数字或字符,结果的变量类型可能不是你所期望的。

  • 查找唯一或重复的值

  • 要识别数据中的所有唯一值,请使用unique()函数。尝试在mtcars中找到唯一的气缸数值: >> unique(mtcars $ cyl)[1] 6 4 8

有时您想知道数据的哪些值是重复的。根据您的情况,这些重复项将是有效的,但有时重复项可能表示数据输入问题。

识别重复条目的功能是重复的()。在内置的数据集虹膜中,第143行有一个重复的行。试一试:

dupes head(dupes)[1] FALSE FALSE FALSE FALSE FALSE FALSE> which(dupes)[1] 143> iris [笨蛋,]脓疱。长度Sepal。宽花瓣。长的花瓣。 Width Species 143 5. 8 2. 7 5. 1 1. 9 virginica

因为duplicate()的结果是一个逻辑向量,所以可以用它作为索引从数据中删除行。要做到这一点,使用否定运算符 - 感叹号(如!dupes):

虹膜[!使用查找表

在电子表格应用程序(如Excel)中,可以使用函数vlookup或索引和匹配的组合创建查找表。在R中,使用merge()或match()可能会很方便。 match()函数返回一个与查找值匹配的元素位置的向量。

例如,要在mtcars的行名称中找到元素“Toyota Corolla”的位置,请尝试以下操作: >> index index [1] 20> mtcars [index,1:4] mpg cyl disp hp Toyota Corolla 33. 9 4 71. 1 65

使用数据透视表

对于R中的简单表,可以使用tapply()函数实现类似的结果,以便在Excel中透视表。下面是使用tapply()计算具有不同数量的汽缸和齿轮的汽车的平均hp的​​示例:

(mtcars,tapply(hp,list(cyl,gear),mean))3 4 5 4 97。 0000 76. 0 102. 0 6 107. 5000 116. 5 175. 0 8 194. 1667 NA 299. 5

对于稍微复杂的表格 - 也就是说,具有两个以上交叉分类因子的表格 - 使用聚合()函数: >>集合(hp〜cyl + gear + am,mtcars,mean)柱面齿轮hp 1 4 3 0 97. 00000 2 6 3 0 107. 50000 3 8 3 0 194. 16667 4 4 4 0 78. 50000 5 6 4 0 123. 00000 6 4 4 1 75. 16667 7 6 4 1 110. 00000 8 4 5 1 102. 00000 9 6 5 1 175. 00000 10 8 5 1 299. 50000

使用目标寻找和求解器在R中,optimize()函数为优化函数提供了一个相当简单的机制。假设你是公司的销售总监,你需要为你的产品设定最好的价格。换句话说,找到最大化收入的产品的价格。在经济学中,一个简单的定价模型指出,当价格上涨时,人们购买给定产品的数量会减少。这是一个非常简单的函数,具有以下行为: >> sales < - function(price){100 - 0.5 * price}

预期收入仅为价格和预期销售额的乘积: >>收入< - 函数(价格){价格*销售(价格)}

您可以使用curve()函数绘制连续函数。这需要一个函数作为输入并产生一个图。尝试使用curve()函数绘制销售和收入的行为,从$ 50到$ 150变动价格:

oldpar曲线(销售,从= 50到= 150,xname =“price”,main =“Sales “)>曲线(收入,从= 50,到= 150,xname =”价格“,main =”收入“)> par(oldpar)

您的结果应该看起来类似于此。预期销售和收入的模型。你有一个销售和收入的工作模式。你可以立即看到有一个最大的收入点。接下来,使用R函数optimize()来查找该最大值。要使用optimize(),你需要告诉它使用哪个函数(在这种情况下,是收益()),以及间隔(在这种情况下,价格在50和150之间)。默认情况下,optimize()搜索最小值,所以在这种情况下,你必须告诉它搜索最大值: >> optimize(revenue,interval = c(50,150),maximum = TRUE)$ maximum [1] 100 $ objective [1] 5000

你去了。收取$ 100的价格,并期望获得$ 5,000美元的收入。

你可以在R中完成的10件事你可以在Microsoft Excel中完成

编辑的选择

古饮食计划:吃什么早餐 - 假人

古饮食计划:吃什么早餐 - 假人

一个发展的挑战早餐的一个古人(洞穴人)饮食膳食计划重新定义了哪些食物适合早餐的想法。谷类或鸡蛋和面包的非古式“传统”早餐不会削减它。不要试图将你的旧餐理念改造成新的古代格式,你可以尝试吃任何东西...

如何构建IOS应用程序

如何构建IOS应用程序

在Xcode中构建iOS应用程序意味着编译所有源代码代码文件在项目中。在构建和运行从模板创建的项目时,看到您所得到的结果真是令人兴奋。构建和运行应用程序相对简单;只需按照以下步骤操作:在工具栏中,选择一个方案...

编辑的选择

如何计算企业的盈亏平衡点 - 傻瓜

如何计算企业的盈亏平衡点 - 傻瓜

以下是您想知道的关于您拥有的业务或操作:您想知道公司必须达到的销售收入才能达到收支平衡。换句话说,你想知道产生零利润的销售收入数量,而不是零损失。幸运的是,无论是这种计算,还是...

如何使用QuickBooks 2014评估财务费用 - 傻瓜

如何使用QuickBooks 2014评估财务费用 - 傻瓜

您可以告诉QuickBooks在逾期时评估财务费用客户发票。为此,您首先设置财务费用计算规则。完成此操作后,您可以通过选择QuickBooks命令轻松评估逾期金额的财务费用。设置财务费用规则要设置财务费用规则,请选择...

如何计算QuickBook 2012中的盈亏平衡点 - 傻瓜

如何计算QuickBook 2012中的盈亏平衡点 - 傻瓜

QuickBooks 2012允许您计算产品盈亏平衡点快速简单。盈亏平衡点显示产生零利润和零损失的销售收入。记得进行利润 - 成本 - 成本分析的公式吗?它是这样的:利润=(销售收入x毛利率百分比) - 固定成本而不是计算利润的基础上...

编辑的选择

如何更改您的计算机的用户帐户图片 - 傻瓜

如何更改您的计算机的用户帐户图片 - 傻瓜

不仅每个使用您的计算机的人都有他自己的用户帐户,但每个用户都可以添加一个图片到用户帐户。所以,如果你不喜欢与你的用户帐户相关的图片,你运气好 - 你可以改变它。无论你选择什么样的图片,它都会出现在欢迎...

:如何更改您的计算机的桌面背景 - 傻瓜

:如何更改您的计算机的桌面背景 - 傻瓜

Windows桌面为您提供灵活性使其个性化。您可以在桌面上显示您最喜欢的孙子的照片,或使用您选择的颜色作为背景。改变电脑桌面背景的可能性几乎是无止境的。您甚至可以应用桌面主题,它应用了多种颜色和...

为老年人:如何选择一个桌面主题为您的计算机 - 虚拟

为老年人:如何选择一个桌面主题为您的计算机 - 虚拟

窗口内置桌面主题,您可以应用快速更改您的计算机的桌面的外观。这些桌面主题保存了包括菜单外观,背景颜色或图案,屏幕保护程序,甚至鼠标光标和系统声音的元素集。主题保存包含菜单外观,背景颜色或图案的元素集合...