小编ste*_*veb的帖子

在for循环中将数据帧附加在一起

我有一个for loop在每次迭代后生成一个数据帧.我想将所有数据框附加在一起,但发现它很困难.以下是我正在尝试的,请建议如何解决它:

d = NULL
for (i in 1:7) {

  # vector output
  model <- #some processing

  # add vector to a dataframe
  df <- data.frame(model)

}

df_total <- rbind(d,df)
Run Code Online (Sandbox Code Playgroud)

r

42
推荐指数
2
解决办法
9万
查看次数

按组排序变量(dplyr)

我有一个带有列的数据框,x1, x2, group我想生成一个新的数据框,其中有一个额外的列rank,表示x1其组中的顺序.

还有一个相关的问题在这里,但接受的答案似乎不工作了.

直到这里,没关系:

library(dplyr)
data(iris)
by_species <- iris %>% 
              arrange(Species, Sepal.Length) %>% 
              group_by(Species)  
Run Code Online (Sandbox Code Playgroud)

但是当我试图按组排名时:

by_species <- mutate(by_species, rank=row_number())
Run Code Online (Sandbox Code Playgroud)

错误是:

排名错误(x,ties.method ="first",na.last ="keep"):
缺少参数"x",没有默认值

更新

问题是dplyr和之间存在一些冲突plyr.要重现错误,请加载两个包:

library(dplyr)
library(plyr)
data(iris)
by_species <- iris %>% 
              arrange(Species, Sepal.Length) %>% 
              group_by(Species) %>% 
              mutate(rank=row_number())
# Error in rank(x, ties.method = "first", na.last = "keep") : 
# argument "x" is missing, with no default
Run Code Online (Sandbox Code Playgroud)

卸载plyr它的工作原理:

detach("package:plyr", unload=TRUE)
by_species <- iris %>% …
Run Code Online (Sandbox Code Playgroud)

r dplyr

18
推荐指数
1
解决办法
2万
查看次数

如何在标签ggplot条形图上输入确切的小数位数

如何在ggplot条形图标签上指定确切的小数位数?

数据:

strefa  <- c(1:13)
a       <- c(3.453782,3.295082,3.137755,3.333333,3.500000,3.351351,3.458824,3.318681,3.694175,3.241379,3.138298,3.309524,3.380000)
srednie <- data.frame(strefa,a)
Run Code Online (Sandbox Code Playgroud)

代码是:

ggplot(srednie, aes(x=factor(strefa), y=a, label=round(a, digits = 2))) +
  geom_bar(position=position_dodge(), stat="identity",  colour="darkgrey", width = 0.5) +
  theme(legend.position="none",axis.text.x = element_blank(), axis.ticks.x = element_blank(), axis.ticks.y = element_blank()) +
  geom_text(size = 4, hjust = 1.2) +
  coord_flip(ylim = c(1,6))+
  xlab("") +
  ylab("")
Run Code Online (Sandbox Code Playgroud)

如您所见,在标题为5和2的条形图上,标签仅限于小数点后第1位.即使有3.000000或5.999999,如何显示2位小数?在这种情况下,我想显示3.00和6.00.

我试图用作aes参数,label=round(a, digits = 2)但它不起作用.

r bar-chart ggplot2

17
推荐指数
1
解决办法
3万
查看次数

ggplot_stat_density2d用于生态分布

我试图描绘我正在阿拉伯/波斯湾研究的某些生物的生态分布.以下是我尝试过的代码示例:

背景层

library(ggplot2)
library(ggmap)

nc <- get_map("Persian Gulf", zoom = 6, maptype = 'terrain', language = "English")
ncmap <- ggmap(nc,  extent = "device")
Run Code Online (Sandbox Code Playgroud)

其他层

  ncmap+
    stat_density2d(data=sample.data3, aes(x=long, y=lat, fill=..level.., alpha=..level..),geom="polygon")+
    geom_point(data=sample.data3, aes(x=long, y=lat))+
    geom_point(aes(x =50.626444, y = 26.044472), color="red", size = 4)+
    scale_fill_gradient(low = "green", high = "red") + scale_alpha(range = c(0.00, 0.25), guide = FALSE)
Run Code Online (Sandbox Code Playgroud)

但是,我想用它stat_density2d来显示数百种物种的分布(在列中记录,例如SP1 ...... SPn),而不仅仅是显示纬度和经度.

此外,是否可以将我的热图限制在水体中?我将非常感谢我能得到的任何帮助和建议用上面的代码生成的图像

r ggplot2 density-plot

14
推荐指数
1
解决办法
390
查看次数

如何使用PHP将多维数组转换为单个数组?

实现数据库查询后,我将获得下面的多维数组.

二维数组

Array
(
    [0] => Array
        (
            [t1] => test1
        )

    [1] => Array
        (
            [t2] => test2
        )

    [2] => Array
        (
            [t3] => test3
        )

    [3] => Array
        (
            [t4] => test4
        )

    [4] => Array
        (
            [t5] => test5
        )

)
Run Code Online (Sandbox Code Playgroud)

但我想将其转换为单维数组,如下面的格式.

一维数组

Array (
    t1 => test1
    t2 => test2
    t3 => test3
    t4 => test4
    t5 => test5
)
Run Code Online (Sandbox Code Playgroud)

请帮我这样做

php arrays multidimensional-array array-reduce

13
推荐指数
3
解决办法
4681
查看次数

在Shiny中抑制dataTable中的排序

我在Shiny中有一个dataTable,但我想禁用排序并删除列标题旁边的箭头,如下图所示.

在此输入图像描述

我使用以下代码试图在没有运气的情况下解除它.

output$ex <-
  renderDataTable({inData},
                  options = list(
                      bLengthChange = 0,
                      bFilter       = 0,
                      bInfo         = 0,
                      bPaginate     = 0,
                      bSortable     = 0,
                      bOrderable    = 0),
                  rownames=FALSE)
Run Code Online (Sandbox Code Playgroud)

我想bSortable=0,bOrderable=0会做的伎俩,但不会使它工作.

datatable r shiny

12
推荐指数
1
解决办法
6397
查看次数

Go 中的通用函数

我正在学习Go,文档和互动课程说空interface可以容纳任何类型,因为它不需要额外实现的方法。

举个例子:

func describe(i interface{}) {
    fmt.Printf("Type: %T | Value: %v\n", i, i)
}
Run Code Online (Sandbox Code Playgroud)

......会打印出来......

"Type: int | Value: 5" // for i := 5
"Type: string | Value: test" // for i := "test"
... etc
Run Code Online (Sandbox Code Playgroud)

所以我想我的问题是这是否Go's是实现通用功能的方式,或者是否有另一种更合适的方式来实现它们。

generics interface go

7
推荐指数
2
解决办法
8652
查看次数

R/ggplot2:从散点图中折叠或移除y轴的线段

我正在尝试使用ggplot2在R中制作散点图,其中y轴的中间被折叠或移除,因为那里没有数据.我在下面的photoshop中做过,但有没有办法用ggplot创建类似的情节?这是具有连续比例的数据:在此输入图像描述

但我正试图做这样的事情: 在此输入图像描述

这是代码:

ggplot(data=distance_data) +
    geom_point(
        aes(
            x = mdistance,
            y = maxZ,
            shape = factor(subj),
            color = factor(side),
            size = (cSA)
        )
    ) +
    scale_size_continuous(range = c(4, 10)) +
    theme(
        axis.text.x = element_text(colour = "black", size = 15),
        axis.text.y = element_text(colour = "black", size = 15),
        axis.title.x = element_text(colour = "black", size= 20, vjust = 0),
        axis.title.y = element_text(colour = "black", size= 20),
        legend.position = "none"
    ) +
    ylab("Z-score") +
    xlab("Distance")
Run Code Online (Sandbox Code Playgroud)

r scatter-plot ggplot2

5
推荐指数
1
解决办法
2872
查看次数

优雅的方式在R中单元格添加一堆类似的数据帧?

我有一个类似类型的1000个数据框列表

dfs<-list()
for (i in 1:1000) {
  dfs[[i]]<-iris[sample(1:length(iris$Sepal.Length),80),-5]
}
Run Code Online (Sandbox Code Playgroud)

每个都是80乘4的数据帧.我想以单元方式添加(或任何其他操作)所有这些数据帧,并将输出作为80乘4的数据帧,每个单元格包含1000个单元格的总和,或者可能是1000个单元格的平均值?

r dplyr

4
推荐指数
1
解决办法
59
查看次数

使用Javascript和CSS在鼠标悬停上突出显示表格的行

下面是我正在使用的功能,以突出显示悬停在上面的行.

当我的目标是从stripe_table类中选择tbodies时,我无法理解如何实现这一点.一旦将其设置为事件侦听器,我需要让a和td nodeNames响应mouseover事件,从而突出显示其父行.

有人可以解释一下可以实现这一目标的步骤吗?我如何从悬停的a或td元素遍历DOM以找到其父行?

谢谢!

在mouseover上将tbody设置为eventlistener,mouseout对a和td元素做出反应 - >修改tr - 查找目标元素的祖先表行 - 然后将突出显示应用于该表行 - 要遍历DOM运行一个循环将event -target元素重置为其父节点,直到--parent的节点名称等于On mouseout事件,需要恢复格式化*/

//Set up Hover Events

function addEvent( obj, type, fn ) {

    if ( obj.attachEvent ) {
         obj['e'+type+fn] = fn;
         obj[type+fn] = function(){obj['e'+type+fn] ( window.event );}
         obj.attachEvent( 'on'+type, obj[type+fn] );
    } else
         obj.addEventListener(type, fn, false);
    }

    function setUpFieldEvents(){
         var stripeTables = document.getElementsByClassName("stripe_table");
         var tableBodies = stripeTables.tBodies;

             addEvent(tableBodies, "mouseover", hoverHighlight);
             addEvent(tableBodies, "mouseout", undoHighlight);
    }

    function hoverHighlight(){
            var stripeTables = document.getElementsByClassName("stripe_table");
            var tableBodies = stripeTables.tBodies;
            var tableData …
Run Code Online (Sandbox Code Playgroud)

html javascript css

3
推荐指数
1
解决办法
2万
查看次数

合并R中的2列

我有一个数据集,其中包含我想要合并的列,类似于:

library(data.table)
DF <- as.data.table(list(ID = c(1,2,3,4,5), Product = c('Y', NA, NA, 'Z', NA), Type = c(NA, 'D', 'G', NA, NA)))

DF
ID   Product Type
1       Y     NA
2       NA    D
3       NA    G
4       Z     NA
5       NA    NA
Run Code Online (Sandbox Code Playgroud)

我希望看起来像这样:

DF
ID   Product Type  Category
1       Y     NA      Y
2       NA    D       D
3       NA    G       G
4       Z     NA      Z
5       NA    NA      NA
Run Code Online (Sandbox Code Playgroud)

我的代码是:

  DF[,Category := na.omit(c(Product,Type)), by = ID][,c("Product","Type"):=NULL]
Run Code Online (Sandbox Code Playgroud)

我的问题是,我想有对于CategoryNA当两个Product和 …

merge r

1
推荐指数
1
解决办法
102
查看次数