r - 使用循环检索R中向量中每个元素的数据并组装一个新的数据框
问题描述
我有一个向量crypto_coins <- c("bitcoin","polkadot","dogecoin")
和一个函数return_chart("coin_name")
,它返回给定加密的一些数据(例如return_chart("bitcoin")
)。
中的每日价格return_chart
存储在一个列中prices
。例如:
return_chart("bitcoin")[, "prices"] #returns every daily price of bitcoin for last 30 days
我想创建一个 FOR(或 WHILE)循环,这将允许我 1)检索向量中每种货币的数据和 2)组装一个新的数据框Crypto_data
。该数据框应包含:
- 第一列中的硬币名称。
- 第二列中每枚硬币的平均价格(按每日平均价格计算)。
- 第三列中每枚硬币的平均价格的标准差。
请让我知道如何创建这样的循环。先感谢您。
解决方案
首先,为平均价格和标准误差创建具有初始化的零列的输出数据框:
crypto_coins <- c("bitcoin","polkadot","dogecoin")
df = data.frame(coin_name = crypto_coins, average = rep(0,length(crypto_coins)), SE = rep(0,length(crypto_coins)))
对于 的每个元素crypto_coins
,您希望有一个平均值和一个 SE。所以你想要一个长度为 的循环crypto_coins
,收集每个方差的均值和平方根:
for (i in 1:length(crypto_coins))
{
df$average[i] = mean(return_chart(crypto_coin[i])[,"prices"])
df$SE[i] = sqrt(var(return_chart(crypto_coin[i])[,"prices"]))
}
这crypto_coin[i]
是 的i
第 th 元素crypto_coin
,df$average[i]
是数据框列的i
第 th 元素。和函数计算向量的均值和方差。average
df
mean(x)
var(x)
x
更简洁地说,这可以通过使用来编写sapply()
:
averages <- sapply(1:length(crypto_coins), function(x) mean(return_chart(crypto_coin[x])[,"prices"]))
SEs <- sapply(1:length(crypto_coins), function(x) sqrt(var(return_chart(crypto_coin[x])[,"prices"])))
df = data.frame(coin = crypto_coins, average = averages, SE = SEs)
推荐阅读
- pandas-groupby - 分组以创建多个文件
- angular - Angular mat-tab 延迟加载并在选项卡之间保留数据
- python - XLSXwriter - 编写多个嵌套字典
- angular - Angular CLI 未从 v 8.1.3 降级
- javascript - 如何在 API 调用中将密钥作为授权标头传递
- autohotkey - 随机选择:未正确执行
- python - 对于 Keras ANN,Pandas 数据框的形状不正确
- google-app-maker - 有没有办法使用 API 来安排邮件消息?
- javascript - onclick JAVASCRIPT 如何从同一个类中获取每个值
- gremlin - 亚马逊海王星与 Tinkerpop 兼容?为什么以及如何?