- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框,其中每一列都是股票的历史价格。我想从中创建这些价格的百分比变化矩阵,因此我尝试使用 quantmod
中的 Delt
函数。当我尝试使用下面的代码应用
Delt
函数时,结果中有不正确的更改。当我将 Delt
分别应用于每一列时,会出现正确的更改。我做错了什么?
这里是 data
> library(quantmod)
> m<-read.csv(file="C:/Users/Desktop/prices.csv", header=TRUE, sep=",", row.names=1)
> head(apply(m, 2, Delt, k=1))
A B C D E
[1,] NA NA NA NA NA
[2,] 0.013883218 0.02402696 -0.0028845060 0.10537081 0.065129843
[3,] -0.261075312 -0.27656116 0.0064643504 -0.03748629 0.003693638
[4,] 0.100354272 0.28212656 -0.0006447236 0.01986472 0.022154153
[5,] -0.033372547 0.11482705 -0.0023028136 -0.06562413 0.093813308
[6,] -0.004419677 -0.18058097 0.0007338350 -0.03160490 -0.010180472
> head(Delt(m[,1]))
Delt.1.arithmetic
[1,] NA
[2,] -0.009326258
[3,] 0.015094952
[4,] 0.015403475
[5,] -0.017321925
[6,] 0.019550238
这是 m 的前 30 行:
A B C D E
6/1/2006 186.57 15.16001 12.88992 128.04 63.23111
7/1/2006 184.83 13.93923 12.87614 127.91 63.17918
8/1/2006 187.62 14.40092 12.86571 128.26 63.33122
9/1/2006 190.51 13.87444 12.85661 128.34 63.60919
10/1/2006 187.21 12.84720 12.83384 126.74 62.97229
11/1/2006 190.87 13.52174 12.85892 127.57 64.05329
12/1/2006 198.13 13.81215 12.86256 133.37 64.81722
1/1/2007 195.92 14.24603 12.85711 132.01 65.18905
2/1/2007 196.68 13.95810 12.81181 130.22 65.17205
3/1/2007 195.84 13.74382 12.79951 131.86 65.47931
4/1/2007 196.78 13.76690 12.79787 133.54 65.93696
5/1/2007 199.87 14.22677 12.78429 136.04 65.77217
6/1/2007 198.24 14.10437 12.80410 134.49 65.31252
7/1/2007 200.87 14.19849 12.79181 135.41 65.34666
8/1/2007 203.25 14.08153 12.77221 136.67 65.90654
9/1/2007 201.71 13.99091 12.82413 136.30 65.55228
10/1/2007 204.35 14.62587 12.87034 142.31 67.68648
11/1/2007 208.01 15.15703 12.89241 144.25 68.97027
12/1/2007 205.63 14.69767 12.84175 146.33 69.04170
1/1/2008 198.64 14.58832 12.82002 145.92 69.43480
2/1/2008 196.51 13.58696 12.82676 148.02 70.73637
3/1/2008 198.91 12.77139 12.85116 151.79 71.66404
4/1/2008 197.59 12.52536 12.83977 156.14 72.56894
5/1/2008 197.48 13.14181 12.82874 154.74 73.44301
6/1/2008 198.23 13.14060 12.81345 155.54 73.41066
7/1/2008 199.49 12.67957 12.82051 157.93 73.46999
8/1/2008 197.50 13.85022 12.81246 155.64 72.86505
9/1/2008 180.14 12.89408 12.81132 146.17 70.21979
10/1/2008 176.97 12.13371 12.87266 140.09 69.55070
11/1/2008 160.76 10.22495 12.90323 127.26 67.40361
最佳答案
使用lapply
可能会更好
lst <- lapply(m, Delt, k=1)
head(data.frame(lst))
#Delt.1.arithmetic Delt.1.arithmetic.1 Delt.1.arithmetic.2 Delt.1.arithmetic.3 Delt.1.arithmetic.4
#1 NA NA NA NA NA
#2 -0.009326258 -0.08052690 -0.0010687188 -0.001015308 -0.0008213299
#3 0.015094952 0.03312212 -0.0008105454 0.002736299 0.0024065873
#4 0.015403475 -0.03655914 -0.0007071123 0.000623733 0.0043890342
#5 -0.017321925 -0.07403839 -0.0017710656 -0.012466885 -0.0100125948
#6 0.019550238 0.05250490 0.0019545514 0.006548840 0.0171662816
或者如果我们使用apply
,使用as.vector
转换为vector
head(apply(m, 2, function(x) Delt(as.vector(x), k = 1)))
# A B C D E
#[1,] NA NA NA NA NA
#[2,] -0.009326258 -0.08052690 -0.0010687188 -0.001015308 -0.0008213299
#[3,] 0.015094952 0.03312212 -0.0008105454 0.002736299 0.0024065873
#[4,] 0.015403475 -0.03655914 -0.0007071123 0.000623733 0.0043890342
#[5,] -0.017321925 -0.07403839 -0.0017710656 -0.012466885 -0.0100125948
#[6,] 0.019550238 0.05250490 0.0019545514 0.006548840 0.0171662816
取消命名整个数据集不会给出正确的结果
head(apply(unname(m), 2, quantmod::Delt))
# [,1] [,2] [,3] [,4] [,5]
#[1,] NA NA NA NA NA
#[2,] 0.013883218 0.02402696 -0.0028845060 0.10537081 0.065129843
#[3,] -0.261075312 -0.27656116 0.0064643504 -0.03748629 0.003693638
#[4,] 0.100354272 0.28212656 -0.0006447236 0.01986472 0.022154153
#[5,] -0.033372547 0.11482705 -0.0023028136 -0.06562413 0.093813308
#[6,] -0.004419677 -0.18058097 0.0007338350 -0.03160490 -0.010180472
但是,如果我们unname
向量,它会给出正确的输出
head(apply(m, 2, function(x) Delt(unname(x), k=1)))
# A B C D E
#[1,] NA NA NA NA NA
#[2,] -0.009326258 -0.08052690 -0.0010687188 -0.001015308 -0.0008213299
#[3,] 0.015094952 0.03312212 -0.0008105454 0.002736299 0.0024065873
#[4,] 0.015403475 -0.03655914 -0.0007071123 0.000623733 0.0043890342
#[5,] -0.017321925 -0.07403839 -0.0017710656 -0.012466885 -0.0100125948
#[6,] 0.019550238 0.05250490 0.0019545514 0.006548840 0.0171662816
本质上,Delt
需要一个没有任何 rowname 属性的 vector
。 apply
中的 as.vector
和 unname
会删除这些属性,而 lapply
默认会删除它。
确认一下
head(apply(`row.names<-`(m, NULL), 2, Delt, k=1))
# A B C D E
#[1,] NA NA NA NA NA
#[2,] -0.009326258 -0.08052690 -0.0010687188 -0.001015308 -0.0008213299
#[3,] 0.015094952 0.03312212 -0.0008105454 0.002736299 0.0024065873
#[4,] 0.015403475 -0.03655914 -0.0007071123 0.000623733 0.0043890342
#[5,] -0.017321925 -0.07403839 -0.0017710656 -0.012466885 -0.0100125948
#[6,] 0.019550238 0.05250490 0.0019545514 0.006548840 0.0171662816
关于R 区分股票价格矩阵 : Delt and apply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37903909/
我需要一些帮助。 我希望“总计”由“数量*价格=总计”计算(到目前为止没问题)。问题是我还需要通过“总/价格=数量”来计算“数量”,即如果一个字段发生更改,另一个字段也会自动更改。 我做了一个非常简单
我试图将每件商品的数量和价格相乘来计算总数,但我的警报中出现错误。 $.each(data.items, function(index, d){ var calcultest = d.pric
我想获得格式化的价格但没有货币符号,我只想使用 magento 的标准功能! $product->getFinalPrice(); => 19.9900 Mage::helper('core')->f
我正在尝试获取特定月份和年份中所有父类别的总价格。父类别是 parent_id == 0 的任何类别。我的查询如下所示: SELECT ROUND(SUM(od.total_price)) a
请帮我摆脱我的头痛..提前我为我的糟糕语言道歉,无论是英语还是mysql。希望有人能理解这个问题..:) 我有一个数据库,任何人都可以记录各个商店中各种产品的价格。以下查询是一个半理论示例,可能根本不
下面是我需要在数据库中设计的示例: 会有一个价格选项,如果有的话,会有一个特价选项,然后我想知道如果我希望其中一个选项是“免费”的,我该怎么做。 另请参阅根据所在国家/地区会有不同的货币。这是我的想法
商品价格格式 999,99 999 - 1 ..4 digits , - comma sign marks decimal point 99 - 2 digits after price Postg
我有这个表 stk +---------+--------------+ | Field | Type | +---------+--------------+ | id
是否有一个简单的格式化程序可以将我的字符串格式化为价格? 所以我的字符串是:300000 我想用空格来“300 000” or 1000000 "1 000 000" 张国荣 最佳答案 这样做: St
我想知道是否可以使用不依赖于 Excel 应用程序本地化(欧盟/美国)的 Excel 公式来自定义数字格式? 例如,我的值为 1291660。 然后使用公式=TEXT(A1;"# ##0,00") .
这是我的代码,对于价格 slider : $("#price-slider").ionRangeSlider({ min: 130, max: 575, onChange :
用户可以使用价格创建一个新实体。价格可以使用不同的货币(EUR,USD ...),因此我们可以乘以(price * convert_rate)得到实际价格。 我想做的是根据价格过滤记录,具体取决于前端
我正在尝试隐藏小数位在类型输入字段上,例如 数字从0.00开始 因此,输入字段中的第一个位置将为 0.00 我输入的1比它应该变成0.01 我输入的2比它应该变成0.12 比 0 所以它应该变成 1.
$res=mysql_query($qry); while($row= mysql_fetch_array($res)) { echo "".$row['Food_Name']." ".$row['P
我们正在为我们的新项目寻找信用卡网关。那里一片困惑,所有人都想把你切成碎片。每次我与他们交谈时,他们都有不同的费率,每次更新报价时,他们都会更改一些价格。 我们正在使用 .net、C#、asp.net
我已经创建了一个 jQuery 价格 slider ,但我不确定如何让过滤区域以实际价格范围开始?目前它有“$[object Object] - $[object Object]”,而我希望它有“$2
我已经创建了 jquery 价格 slider ,但我不确定如何过滤我的结果,以便在滑动时您只能看到具有该值范围内的产品。 HTML: Price range:
我有一个页面,其中有一个表格,我们可以在其中选择一个产品,输入它的数量和价格,然后应在最后一列中计算金额,并应添加新行以输入更多产品,直到我们完成为止。
我创建了电子商务网站,即将提供午餐和晚餐服务。我在这里提出问题/问题是因为我知道这里有很多可以帮助我的传奇人物。我在网站上添加了套餐/计划部分。 1. Weekly 2. Monthly 以下是订
我的网站需要一个简单的 jQuery 价格 slider 。从 0 英镑到 1000 英镑不等。 假设浏览器将 slider 设置为 100 英镑(例如),然后我需要一个立即购买按钮,该按钮将 sli
我是一名优秀的程序员,十分优秀!