y = c("-1", "1", "1", ...)
y = c("-1/2", "1", "1", ...)
y = as.numeric(y);
sapply(y , function(x) {
eval(parse(text=x));
});
eval(parse(text))
非常慢--正如您所知道的,您可以编写一个更快的函数:
y = c("-1/2", "1", "1", "1/2")
fixnums <- function(x){
temp <- as.numeric(x)
temp[is.na(temp)] <- lapply(strsplit(x[is.na(temp)], "/"), function(x) as.numeric(x[1])/as.numeric(x[2]))
unlist(temp)
}
fixnums(y)
@Davidarenburg在下面的评论中建议了一个更快的版本,避免了lapply:
davidfixnums <- function(x){
temp <- as.numeric(x)
temp2 <- as.numeric(unlist(strsplit(y[is.na(temp)], "/", fixed = TRUE)))
temp[is.na(temp)] <- temp2[c(T, F)]/temp2[c(F, T)]
temp
}
一些基准,使用@Akrun和@Davidarenburgs建议:
library(microbenchmark)
set.seed(1234)
y <- sample(c("-1/2", "1", "1", "1/2"), 10000, replace = TRUE)
akrunfixnums <- function(y){
x1 <- as.numeric(y)
x1[is.na(x1)] <- vapply(y[is.na(x1)], function(x)
eval(parse(text=x)), numeric(1))
x1
}
microbenchmark(fixnums(y), davidfixnums(y), akrunfixnums(y))
Unit: milliseconds
expr min lq mean median uq max neval cld
fixnums(y) 22.643745 23.157345 25.326465 23.435554 23.98544 154.16316 100 b
davidfixnums(y) 6.676234 6.778378 6.957626 6.824459 6.93025 10.12763 100 a
akrunfixnums(y) 845.404840 858.031737 869.886625 865.255363 875.54351 960.86497 100 c
我尝试在本地运行此存储库 我安装了git,但当我运行此命令时: 编辑运行另一个命令时收到此错误:
验证静态库是.o文件的合集 相关工具介绍 clang命令部分参数描述 -x: 指定编译文件语言类型 -target: 指定指令集(-target arm64-apple-ios14.3 真机) -g: 生成调试信息 -c: 生成目标文件,只运行preprocess,compile,assemble,不链接 -o: 输出文件 -isysroot: 使用的SDK路径 1. -I<
说明 整理自“3Blue1Brown - 微积分的本质系列视频” 本系列的视频目的在于帮助你建立关于微积分的基本直觉 目录 微积分回忆 求导公式 乘积法则 链式法则 隐函数求导 积分、微分的互逆关系 泰勒级数 ... 微积分的三个中心思想: 积分 微分 积分与微分(导数)的互逆 (几位)微积分之父 发现微积分:巴罗(Barrow)、牛顿(Newton)、莱布尼茨(Leibniz) 给出严格定义:柯
我有两个不同长度的向量,每个向量包含0到50之间的数字。有些数字在向量中不包含,其他数字可能出现多次。 我想画一条线,显示每个数字在每个向量中包含的频率,即数字的频率。 如果我将中断设置为每个可能的数字之间,我可以绘制显示频率的直方图: 我知道有一个经验累积分布函数(),它会形成一个S形;但我想要的是一个非累积的经验分布函数,它将导致类似阶梯形钟形曲线的结果,类似于直方图的轮廓。 我能得到的最接近
主要内容:RMySQL包,将R连接到MySql,查询表,使用过滤子句查询,更新表中的行记录,将数据插入到表中,在MySql中创建表,在MySql中删除表关系数据库系统中的数据是以规范化格式存储的。 所以,为了进行统计计算,我们需要非常高级和复杂的SQL查询。但是R可以很容易地连接到许多关系数据库,如:MySQL,Oracle,Sql Server等,并将它们作为数据帧提取。 当从数据库中读取数据到R环境中可用以后,它就成为一个正常的R数据集,可以使用所有强大的软件包和函数进行操作或分析。 在本教
我写了一个程序,将数字分解为它的质因数,然后将它们存储在一个向量中,最后询问是否通过将它们相乘来验证结果。 它的工作方式是这样的:要求一个数字(代码中的),然后将其除以2及以上。 如果它找到一个模(当mod时)为零的数字(代码中的 ),则将该除数存储到一个向量中,并将其除以 ,然后将其存储到 中,然后将除数重置为1(而 循环中的最后一条语句将其递增为2)。如果没有找到这样的数字, 将增加,直到它大