小编Mol*_*olx的帖子

使用ggplot2严重显示网格

我试图在天空上绘制天体(基本上坐标等于纬度/经度).我使用函数的"aitoff"投影成功绘制了所有点coord_map,但在这种情况下,网格显示得很糟糕,即仍然显示残差水平线,其中纬度不等于零以及它们的正确投影.

在此输入图像描述

我怎么能删除这些线?

以下是重现行为的代码:

library(ggplot2)
library(mapproj)
sky2 = data.frame(RA=0, Dec=0)
skyplot2 <- qplot(RA,Dec,data=sky2,xlim=c(0,360),ylim=c(-89.999,89.999),
xlab="R.A.(°)", ylab="Decl. (°)",main="Source repartition on the sky")
skyplot2 + coord_map(projection="aitoff",orientation=c(89.999,180,0)) + 
scale_y_continuous(breaks=(-2:2)*30,limits=c(-89.999,89.999)) + 
scale_x_continuous(breaks=(0:8)*45,limits=c(0,360),
                   labels=c("","","","","","","","",""))
Run Code Online (Sandbox Code Playgroud)

r ggplot2 map-projections

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

R打印表使用消息

我有一个数据框,我想打印作为显示NA值的警告.

我不能单独使用打印的原因是我正在运行一个RMarkdown文档,我希望在不将此数据框添加到pdf的情况下运行该文档,而是在控制台中单独打印数据框和所有其他警告消息.

当我尝试message(df)它时,只需将包含所有列的长字符串粘贴在一起,并将日期转换为数字.

我尝试使用message(kable(df))几乎完美,但行不会出现在新行上.有什么建议?

message r

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

根据Shiny上的单选按钮选择禁用textInput

说我有以下闪亮的应用程序:

library(shiny)
ui <- fluidPage(
  column(3,
         radioButtons("radios", "",
                      c("Enabled" = "enabled",
                        "Disabled" = "disabled"),
                      inline = TRUE)
  ),
  column(4, textInput("text", "", value = "Disable me"))
)
server <- function(input, output) {

}
shinyApp(ui=ui, server=server)
Run Code Online (Sandbox Code Playgroud)

textInput基于所选单选按钮禁用基本按钮的最简单方法是什么?我知道我只需要添加... disabled />input标签,但我对如何做,在闪亮的不知道.

我尝试通过将HTML粘贴为字符串,选定的无线电值和HTML的其余部分,使用uiOutputrenderUI(基于)来"手动"构建完整标记,但这不起作用.

textInput产生这样的:

<input id="text" type="text" class="form-control" value="Disable me"/>
Run Code Online (Sandbox Code Playgroud)

我需要能够在上面和下面之间切换:

<input id="text" type="text" class="form-control" value="Disable me" disabled />
Run Code Online (Sandbox Code Playgroud)

r shiny

6
推荐指数
2
解决办法
4178
查看次数

将变量传递给tidyr的聚集以重命名键/值列?

我想tidyr::gather()在一个自定义函数内部调用,我传递一对将用于重命名keyvalue列的字符变量.例如

myFunc <- function(mydata, key.col, val.col) {
    new.data <- tidyr::gather(data = mydata, key = key.col, value = val.col)
    return(new.data)    
}
Run Code Online (Sandbox Code Playgroud)

但是,这不能按预期工作.

temp.data <- data.frame(day.1 = c(20, 22, 23), day.2 = c(32, 22, 45), day.3 = c(17, 9, 33))

# Call my custom function, renaming the key and value columns 
# "day" and "temp", respectively
long.data <- myFunc(mydata = temp.data, key.col = "day", val.col = "temp")

# Columns have *not* been renamed as desired
head(long.data) …
Run Code Online (Sandbox Code Playgroud)

r tidyr

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

Ruby和Ruby on Rails中的三层体系结构

我是一名ASP.NET MVC开发人员,他决定学习Ruby和Ruby on Rails.我已经知道了什么,并在RoR上创建了一个网站.在ASP.NET MVC上开发,我一直使用三层架构:数据层,业务层和UI(或表示)层.

试图在Ruby on Rails应用程序中使用这种方法,我发现没有关于它的信息(或者我可能找不到它?).

也许有人可以建议我如何在Ruby on Rails上创建或使用三层架构?

PS我使用ruby 1.9.3和Ruby on Rails 3.2.3.

ruby ruby-on-rails-3

5
推荐指数
2
解决办法
2708
查看次数

用加号(+)字符拆分字符串

我在数据框中有一个字符串: "(1)+(2)"

我想用分隔符"+"拆分,这样我得到一个元素(1)和另一个元素(2),因此保留括号.我用过,strsplit但它没有保留括号.

r strsplit

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

将Shiny应用程序中的所有用户输入导出到文件并稍后加载

我的Shiny应用程序有几个输入,用于定义生成的绘图的几个参数.用户很可能会花费几分钟时间浏览所有可能的选项,直到他对输出感到满意为止.显然,可以以不同的格式导出绘图,但是用户可能希望稍后使用不同的数据重新创建相同的绘图,或者可能只更改一个小细节.

因此,我需要为用户提供一种方法来导出他的所有设置并保留该文件供以后使用.我开发了一种方法,但效果不佳.我正在使用reactiveValuesToList获取所有输入元素的名称并将其另存为具有该格式的简单文本文件inputname=inputvalue.这是downloadHandlerserver.R:

output$bt_export <- downloadHandler(
  filename = function() {
    "export.txt"
  },
  content = function(file) {
    inputsList <- names(reactiveValuesToList(input))
    exportVars <- paste0(inputsList, "=", sapply(inputsList, function(inpt) input[[inpt]]))
    write(exportVars, file)
  })
Run Code Online (Sandbox Code Playgroud)

这工作正常,但加载不是很顺利.由于我没有(并且无法弄清楚如何)保存输入类型,我必须盲目更新这些值.我是这样做的:

importFile <- reactive({      
  inFile <- input$fileImport      
  if (is.null(inFile))
    return(NULL)      
  lines <- readLines(inFile$datapath)
  out <- lapply(lines, function(l) unlist(strsplit(l, "=")))      
  return(out)
})

observe({
    imp <- importFile()            
    for (inpt in imp) {
      if (substr(inpt[2], 0, 1) == "#") {
        shinyjs::updateColourInput(session, inputId = inpt[1], value = inpt[2]) …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

为什么在更改R中图的边距时添加0.1?

我已经看过很多次了,只是注意到它也在帮助页面上par:

The default is c(5, 4, 4, 2) + 0.1
Run Code Online (Sandbox Code Playgroud)

为什么默认值会增加0.1,并且+ 0.1在更改时也常见par(mar)

设置时,par(mar=c(0, 0, 0, 0) + 0.1)我认为这个想法是设置最小边距,但对于不同于零的值没有意义.

plot r

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

使用gsub创建统一的时间格式

我正在尝试重新格式化当前为字符格式的时间.我想让它们变得均匀.现在他们看起来像这样:

 [1] "1:00PM"      "1:10 PM"     "1:10PM"      "1:20 PM"     "1:30 PM"     "1:30PM"     
 [7] "1:40 PM"     "10:00AM"     "10:10 AM"    "10:10AM"     "10:30 AM"    "10:30AM"    
 [13] "10:45 AM"    "10:45AM"     "10:50 AM"    "10:50AM"     "10AM"        "11:00AM"    
 [19] "11:10 AM"    "11:10AM"     "11:40 AM"    "11:40AM"     "11AM"        "12:00PM"    
 [25] "12:05 PM"    "12:10 PM"    "12:10PM"     "12:25PM"     "12:30 PM"    "12:30PM"    
 [31] "12:45 PM"    "12:45:30 PM" "12:45PM"     "12:50 PM"    "12PM"        "1PM"        
 [37] "2:00PM"      "2:10 PM"     "2:10PM"      "2:20PM"      "2:30 PM"     "2:30PM"     
 [43] "2:35 PM"     "2:45 PM"     "2:45PM"      "2:55 PM"     "2PM"         "3:00PM"     
 [49] "3:05 …
Run Code Online (Sandbox Code Playgroud)

regex datetime r gsub

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

交换数组函数的两个元素

你能告诉我这有什么问题吗?为什么交换功能不起作用?

void swap(int a[], int b, int c) {
    int temp = a[b];
    a[b] = a[c];
    a[b] = temp;
}

void bubble1 (int a[], int N){
    int i;
    for(i=0;i<N-1;i++){
        if(a[i]>a[i+1]){
            swap(a,i,i+1);
        }
    }
}


void main() {
    int N = 11;
    int a[12]={5,3,12,4,25,10,14,35,2,8,13};

    bubble1 (a,N);

    int i;
    for(i = 0; i < N; i++){
        printf("%d\n",a[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我不使用交换功能并在“气泡”功能中手动进行交换,它就可以工作。但是,如果我使用交换它不起作用,即使它完全相同。我在这里做错了什么?

c

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

在R中按大写解析文本

我有许多大文本文件,其基本组成如下:

text<-"this is a speech text. FIRST PERSON: hi all, thank you for coming. SECOND PERSON: thank you for inviting us"
Run Code Online (Sandbox Code Playgroud)

如您所见,它由以下内容组成:1)随机文本,2)大写字母,3)语音.

我已设法使用以下列表将所有单词分开:

textw<-unlist(strsplit(text," "))
Run Code Online (Sandbox Code Playgroud)

然后我找到大写单词的所有位置:

grep(pattern = "^[[:upper:]]*$",x = textw)
Run Code Online (Sandbox Code Playgroud)

我把人的名字分成了一个载体;

upperv<-textw[grep(pattern = "^[[:upper:]]*$",x = textw)]
Run Code Online (Sandbox Code Playgroud)

期望的结果将是这样的数据框架或表格:

Result<-data.frame(person=c(" ","FIRST PERSON","SECOND PERSON"),
         message=c("this is a speech test.","hi all, thank you for coming.","thank you for inviting us"))

Result
         person                       message
1                      this is a speech test.
2  FIRST PERSON hi all, thank you for coming.
3 SECOND PERSON     thank you for …
Run Code Online (Sandbox Code Playgroud)

text r text-mining uppercase

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

在R中使用summary()和max,min和mean时的值不同

我试图获取数据框中列的最大值,最小值和平均值.当我使用max,min和mean时,我得到的一些值与我使用时的值不同,summary()

> max(count1,na.rm=TRUE)
[1] 202034

> min(count1,na.rm=TRUE)
[1] 0

> mean(count1,na.rm=TRUE)
[1] 8498.78

> summary(count1,na.rm=TRUE) 
Min.  1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
0        1555    3668    8499    8535  202000   58297 
Run Code Online (Sandbox Code Playgroud)

r

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

R 按模式将一列拆分为多列

我想将数据框列中的数字和字符分开d.df

col1 
ab 12 14 56
xb 23 234 2342 2
ad 23 45
Run Code Online (Sandbox Code Playgroud)

预期输出:

col1   col2
ab     12 14 56
xb     23 234 2342 2
ad     23 45
Run Code Online (Sandbox Code Playgroud)

我知道它会与此类似,但我不确定分隔符

t <- as.data.frame(str_match(d$col1,"^(.*)"))
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,输出是:

col1      col2      
a         b 12 14 56
x         b  23 234 2342 2
a         d  23 45
Run Code Online (Sandbox Code Playgroud)

split r

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