首页
学习
活动
专区
圈层
工具
发布

R tips:debug并修复一个ggplot2绘图错误的例子

如何使用RStudio进行debug代码以及如何自由的查看R中的函数源码,在以前的R tips推文中都曾经说过。...解决方案 既然data这个数据有问题,可以在出错代码前,先将data中的AsIs对象给还原了,AsIs可以使用unclass复原,比如如下示例: # I 数值 I(1) # [1] 1 class(...[[i]][[j]]) # 使用unclass将AsIs还原 } } } 现在只有一个问题,就是如何将这个fix bug代码添加到ggplot_build.ggplot函数中。...由于这个函数的源码在ggplot2包中,现在是没办法直接修改这个函数的源码的,但是我们可以再创建一个ggplot_build.ggplot函数去覆盖原来的函数,只需要保证新建的ggplot_build.ggplot...甚至是上述思路并不局限于ggplot2对象,因为S3类的class属性是可以编辑的,所以完全可以将原来的S3类对象定义成一个多了一个优先类名的S3类。

3.2K20

R语言︱list用法、批量读取、写出数据时的用法

但是如果,文本分好词之后的数据(如下图),如何将存放在list中的数据进行导出呢?...unlist(Job_Pwordseg.ct[1])[1]#可以得到单个单词,向量形式 #2、data.frame法,批量处理时,因为不等长而无法合并 data.frame(Job_Pwordseg.ct...——不等长合并 两种方法:c(),可以将list[1] 和list[2]进行直接合并,可以兼容不等长,当然合并之后,还有list文件; rbind.fill函数,不等长合并函数,在plyr包中。...#如何解决合并时数据不等长问题——两种方法:do.call函数以及rbind.fill函数(plyr包) #rbind.fill函数只能合并数据框格式 #do.call函数在数据框中执行函数(函数,数据列...TRUE #方法一:单文件导出,后批量导入 #方法二:先合成一个文本导出,再导入

18.3K52
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    R语言数据分析利器data.table包 —— 数据框结构处理精讲

    可见它是属于data.table和data.frame类,并且取列,维数,都可以采用data.frame的方法。...(DF) # TRUE is.list(DT) # TRUE is.data.frame(DT) # TRUE 不过data.frame默认将非数字转化为因子;而data.table 会将非数字转化为字符...将一个R对象转化为data.table,R可以时矢量,列表,data.frame等,keep.rownames决定是否保留行名或者列表名,默认FALSE,如果TRUE,将行名存在"rn"行中,keep.rownames...roll 当i中全部行匹配只有某一行不匹配时,填充该行空白,+Inf(或者TRUE)用上一行的值填充,-Inf用下一行的值填充,输入某数字时,表示能够填充的距离,near用最近的行填充 rollends...SD就包括了页写选定的特定列,可以对这些子集应用函数处理 allow.cartesian FALSE防止结果超出nrow(x)+nrow(i)行,常常因为i中有重复的列而超出。

    7.2K20

    「R」apply,lapply,sapply用法探索

    但是,由于在R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数族一直是使用者玩不转一类核心函数。...我一般最常用的函数为apply和sapply,下面将分别介绍这8个函数的定义和使用方法。 2. apply函数 apply函数是最常用的代替for循环的函数。...如果直接用for循环来实现,那么代码如下: # 定义一个结果的数据框 > dfdata.frame() # 定义for循环 > for(i in 1:nrow(x)){ + rowx[i,...(x){ + dfdata.frame() + for(i in 1:nrow(x)){ + rowx[i,] + df<-rbind(df,rbind(c(sum(row...参数列表: X:list、data.frame数据 FUN: 自定义的调用函数 …: 更多参数,可选 比如,计算list中的每个KEY对应该的数据的分位数。

    5.1K32

    左手用R右手Python系列之——迭代器与迭代对象

    i2 data.frame(x=1:3, y=10, z=c('a', 'b', 'c')),by="row") > nextElem(i2) x y z 1 1 10 a > nextElem...(i2) x y z 2 2 10 b > nextElem(i2) x y z 3 3 10 c 设置迭代依据参数by可以控制迭代方式,这里将by设为row迭代即为按行迭代。...enumerate函数可以将列表或者向量进行键值对形式的迭代(Python中就有同名的函数,这并不奇怪,因为以上两个包中的所有函数都是参照Python中的迭代器包设计的)。...(iter1) 使用iter函数可以将一个可迭代对象(可以是列表、字典、元组、集合等)转换为一个迭代器。...使用next()函数可以单次迭代一个迭代器,直至迭代到最大次数,迭代器失效,再次迭代将会抛出错误。

    1.4K80

    scikit-learn代码实现SVM分类与SVR回归以及调参

    多项式核函数可以实现将低维的输入空间映射到高纬的特征空间,但是多项式核函数的参数多,当多项式的阶数比较高的时候,核矩阵的元素值将趋于无穷大或者无穷小,计算复杂度会大到无法计算。...高斯径向基函数是一种局部性强的核函数,其可以将一个样本映射到一个更高维的空间内,该核函数是应用最广的一个,无论大样本还是小样本都有比较好的性能,而且其相对于多项式核函数参数要少,因此大多数情况下在不知道用什么核函数的时候...intercept_scaling : float, optional (default=1) 当self.fit_intercept为True时,实例向量x变为[x,self.intercept_scaling...class_weight : {dict, ‘balanced’}, optional 将类i的参数C设置为SVC的class_weight [i] * C....请注意,此设置利用liblinear中的每进程运行时设置,如果启用,可能无法在多线程上下文中正常工作。

    2.3K20

    【C++11】一些易用性的改进

    强类型枚举(枚举类) ​ C++11 中引入了强类型枚举(strongly-typed enum),也称为枚举类(enum class),用于替代传统的 C++ 枚举类型。 ​...而强类型枚举使用类的语法定义枚举类型,可以避免这些问题,并提供更好的类型安全性和可读性。 ​...换句话说,如果表达式中的成员都是常量,那么该表达式就是一个常量表达式。这也意味着,常量表达式一旦确定,其值将无法修改。 ​ 实际开发中,我们经常会用到常量表达式。...函数中的 x 无法完成初始化 array 容器的任务,而 dis_2() 函数中的 x 却可以。 ​...这是因为,dis_1() 函数中的 const int x 只是想强调 x 是一个只读的变量,其本质仍为变量,无法用来初始化 array 容器;而 dis_2() 函数中的 const int x,表明

    37200

    ggtree-给你的进化树盛世美颜

    传统的系统发育树代表了一种进化史的模型,该树由树节点之间的祖先后代关系和处于不同相关程度的“sister”或“cousin”的聚类描绘而成。...geom_tippoint(aes(color = Phylum), size = 1.5) ##facet_plot根据树结构自动重新排列丰富度数据 ##geom_density_ridges函数将密度曲线与树对齐...facet_plot函数将序列距离表示为点图,然后在同一面板添加一个线图层。...但是它只能将与树相关的数据的数字值绘制为气泡,并且无法生成图例。Phylobase还不支持将关联数据改变例如颜色,大小和形状等特征。这些特征需要大家手动添加。...() + scale_y_continuous(expand=c(0, 0.3)) ggtree还可以对多个关联矩阵进行可视化 用多个gheatmap函数将多个关联的矩阵与树对齐,但是ggplot2

    13.4K42
    领券