小编coi*_*oip的帖子

dplyr join warning:加入不同级别的因子

在包中使用join函数时dplyr,我收到此警告:

Warning message:
In left_join_impl(x, y, by$x, by$y) :
  joining factors with different levels, coercing to character vector
Run Code Online (Sandbox Code Playgroud)

网上没有很多关于此的信息.知道它可能是什么?谢谢!

r

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

R:分配数据框列的变量标签

我正在努力使用data.frame列的变量标签.假设我有以下数据框(更大的数据框的一部分):

data <- data.frame(age = c(21, 30, 25, 41, 29, 33), sex = factor(c(1, 2, 1, 2, 1, 2), labels = c("Female", "Male")))
#
Run Code Online (Sandbox Code Playgroud)

我还有一个带有该数据框变量标签的命名向量:

var.labels <- c(age = "Age in Years", sex = "Sex of the participant")
Run Code Online (Sandbox Code Playgroud)

我想在分配变量标签var.labels在数据帧中的列data使用功能labelHmisc包.我可以像这样一个接一个地做,然后检查结果:

> label(data[["age"]]) <- "Age in years"
> label(data[["sex"]]) <- "Sex of the participant"
> label(data)
                 age                      sex
      "Age in years" "Sex of the participant"
Run Code Online (Sandbox Code Playgroud)

变量标签被指定为列的属性:

> attr(data[["age"]], "label")
[1] "Age in years"
> …
Run Code Online (Sandbox Code Playgroud)

r labels dataframe assign hmisc

20
推荐指数
3
解决办法
5万
查看次数

如何合并R中列表的所有元素?

我有一个包含数据框的列表作为其在R中的元素.

例:

df1 <- data.frame("names"=c("John","Sam","Dave"),"age"=c(21,22,25))
df2 <- data.frame("names"=c("John","Sam"),"score"=c(22,25))
df3 <- data.frame("names"=c("John","Sam","Dave"),"country"=c("US","SA","NZ"))
mylist <- list(df1,df2,df3)
Run Code Online (Sandbox Code Playgroud)

是否可以在不使用循环的情况下将mylist的所有元素合并在一起?

我希望这个例子的输出是:

  names age score country
1  John  21    22      US
2   Sam  22    25      SA
Run Code Online (Sandbox Code Playgroud)

此示例中的列表只有三个元素; 但是,我正在寻找一种可以处理任意数量元素的解决方案.

merge r list

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

R tm package vcorpus:将语料库转换为数据帧时出错

我正在使用该tm软件包使用以下代码清理一些数据:

mycorpus <- Corpus(VectorSource(x))
mycorpus <- tm_map(mycorpus, removePunctuation)
Run Code Online (Sandbox Code Playgroud)

然后,我想将语料库转换回数据框,以便导出包含数据帧原始格式的数据的文本文件.我尝试过以下方法:

dataframe <- as.data.frame(mycorpus)
Run Code Online (Sandbox Code Playgroud)

但是这会返回一个错误:

"as.data.frame.default中的错误.(mycorpus):无法将类"c(vcorpus,> corpus")强制转换为data.frame

如何将语料库转换为数据框?

r corpus tm

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

是否可以在绘制情节时更改ylim和xlim?

例如,如果我想绘制点1-5的图并添加点5-9,则以下方法可行:

> plot(c(1,2,3,4,5), ylim=c(0,10))
> points(c(5,6,7,8,9))
Run Code Online (Sandbox Code Playgroud)

但是,如果我事先不知道要添加的点数是多少(它们可能是5-9,也可能是20-29),我不能预先设置ylim和xlim.我希望能够做类似以下的事情(这不起作用):

> plot(c(1,2,3,4,5))
> points(c(5,6,7,8,9), ylim=c(0,10)) 
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?

plot r limit

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

循环通过矢量矢量

当我遍历向量向量时,每个循环的结果是几个向量.我希望每个循环的结果都是一个向量.请参阅以下示例:

foo <- seq(from=1, to=5, by=1)
bar <- seq(from=6, to=10, by=1)
baz <- seq(from=11, to=15, by=1)
vects <- c(foo,bar,baz)
for(v in vects) {print(v)}

# [1] 1
# [1] 2
# [1] 3
# [1] 4
# [1] 5
# [1] 6
# [1] 7
# [1] 8
# [1] 9
# [1] 10
# [1] 11
# [1] 12
# [1] 13
# [1] 14
# [1] 15
Run Code Online (Sandbox Code Playgroud)

这是奇怪的,因为我预计给定它的三个向量(应该)给定向量迭代三次,c(foo,bar,baz).就像是:

# [1]  1  2  3  4  5
# [1] …
Run Code Online (Sandbox Code Playgroud)

loops for-loop r vector

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

ggplot2闪亮错误:ggplot2不知道如何处理类packageIQR的数据

我正在尝试构建一个简单的shiny应用程序,该应用程序基于输入创建数据表并使用输出线图ggplot2.我收到以下错误:

错误:ggplot2不知道如何处理类packageIQR的数据

在这个应用程序中,用户使用滑块来定义时间段或X的长度,以及通过定义起始值和X上的值的变化来定义值的变化.图是线性线.我是新手shiny,所以如果有更好的方法来设置这个,我也希望有关设置服务器代码的最佳方法的建议,但是现在我只是得到一个错误并且没有产生任何情节.

server.R

library(shiny)
library(ggplot2)

shinyServer(function(input, output){

  reactive({
    data <- data.table(months = seq(1, input$months, by = 1),
                   value  = seq(input$startingValue, 
                               input$startingValue + input$valueChange, 
                               length.out = input$months))
  })


   output$yield <- renderPlot({  
     p <- ggplot(data(), aes(x=months, y=value, colour=value)) +geom_line()
     print(p)
   })
})
Run Code Online (Sandbox Code Playgroud)

r ggplot2 shiny

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

R闪亮错误:找不到对象输入

以下代码是我的Shiny ui:

library(shiny)
shinyUI(fluidPage(

titlePanel("All Country Spend"),

  sidebarLayout(
    sidebarPanel(  selectInput("split", 
        label = "Choose Fill For the Chart",
        choices = c("Action.Obligation","Action_Absolute_Value"),
      selected = "Action.Obligation"
        )
            ),
    mainPanel(plotOutput("SpendChart"))
)
))
Run Code Online (Sandbox Code Playgroud)

以下是服务器代码:

library(shiny)
library(ggplot2)

shinyServer(function(input, output) {

spend <- read.csv("data/Ctrdata.csv")
output$SpendChart <- renderPlot({

    Country <- spend$Principal.Place.of.Performance.Country.Name
    ggplot(spend, aes(x = Country, y = input$split)) + geom_bar(stat = "identity")

})

})
Run Code Online (Sandbox Code Playgroud)

每次运行它我都会收到以下错误:

"eval中的错误(expr,envir,enclos):找不到对象'input'"

我试图渲染一个简单的条形图,它将在每个国家/地区的合同支出的净值和绝对值之间切换,但它不会从selectInput框中识别出名为"拆分"的输入.

这是我的数据框的示例:

data.frame(Country = c("Turk", "Turk", "Saudi", "Saudi", "Ger", "Ger"),
Action.Obligation = c(120,-345,565,-454, 343,-565),
Action_Absolute_Value = c(120,345,565,454,343,565))
Run Code Online (Sandbox Code Playgroud)

r shiny

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

如何在表中包含 NA 数据

我最近一直在使用tabR 中的包来构建频率表。使用tabfreq()tabmulti()函数,默认输出不包括 NA 值。有谁知道在这些函数中包含 NA 值的命令?

r crosstab xtable na

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

从Stata到R:在子集上创建具有垂直日期行的散点图

介绍

我试图在R中复制我在Stata上创建的数据子集的时间序列散点图.散点图在x轴上具有时间变量'date'(mm/dd/yyyy),在y轴上具有整数变量'cost'(货币金额,以美元计).标记标签是分类变量,"公司名称".

实际的数据集非常大,但样本看起来如下(见下面的R代码),观察(即行)表示交易(第1列),后面跟着表明交易日期的变量(第2列),交易成本(第3列),以及启动交易的公司名称(第4列).

#Sample Data Frame (R Code)

transactionID <- c(1, 2, 3, 4) 
date <- as.Date(c("2006-08-06", "2008-07-30", "2009-04-16", "2013-02-05"))
cost <- as.integer(c(1208, 23820, 402, 89943))
company <- c("ACo", "BInc", "CInd", "DOp")
thedata <- data.frame(transactionID, date, cost, company)
Run Code Online (Sandbox Code Playgroud)

在Stata中完成它

我想要的散点图将在x轴上显示"日期",在y轴上显示"成本",将"公司"列为标记标签,并且还将具有3条各种格式的垂直线来表示重要事件.在Stata中生成这个的步骤是

  1. 在2007年9月10日,2008年1月28日,2012年1月18日和2013年2月5日的日期确定垂直线的x轴点.

显示mdy(9,10,2007)

显示mdy(1,28,2008)

display mdy(2,5,2013)

上面的三个显示命令返回值17419,1755,19394,这是Stata在内部读取那些日子的方式,以及嵌入在下面的代码中用于绘制散点图的图形.

  1. 创建散点图,添加步骤1中的三条垂直线,将它们格式化为红色,蓝色和绿色以及不同厚度的虚线,虚线和实线,并在y轴上显示"成本",日期'在x轴上,'公司'名称作为标记标签,仅适用于小于或等于$ 3,000的交易:

如果成本<= 3000,图表twoway散布成本日期,mla​​bel(公司)xline(17419,lpatt(点)lwidth(厚)lcol(红色))xline(17559,lpatt(破折号)lwidth(medthick)lcol(蓝色))xline (19394,lpatt(实心)lwidth(thin)lcol(绿色))

在R中做的问题

当我试图在RI中复制它时遇到了以下问题

  1. 无法弄清楚如何在这些特定日期添加垂直线,也不知道如何更改它们的大小格式
  2. Y轴('成本')采用科学记数法(即2e + 05)而非常规数字(即200,000)
  3. 我不太了解R中的子集; 在Stata中,我可以轻松添加"if"限定符来检查特定数据子集(例如"if cost> 3000&transactionID <5"),然后轻松修改它们以重新运行分析或在其他各种子集上绘制图形.但是在R中似乎还有一些额外的步骤需要先将数据子集化并将其存储为新对象,然后对该对象运行分析.是对的吗?我看到这一些好处,但也有一些缺点(如具有数百个,为您探索数据,例如搞乱你的工作环境,不同的对象).

到目前为止,我已将以下代码拼凑在一起.我最初尝试使用基本R安装命令plot()和text(),但它似乎无法在基础R中完成.所以然后我尝试使用ggplot2包但仍然无法弄清楚像我可以在Stata:

library(ggplot2)
ggplot(thedata, aes(date, cost)) + 
       geom_text( label = thedata$company, color="blue", vjust = 0) +  
       geom_vline( xintercept = …
Run Code Online (Sandbox Code Playgroud)

graphing r subset ggplot2 stata

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

标签 统计

r ×10

ggplot2 ×2

shiny ×2

assign ×1

corpus ×1

crosstab ×1

dataframe ×1

for-loop ×1

graphing ×1

hmisc ×1

labels ×1

limit ×1

list ×1

loops ×1

merge ×1

na ×1

plot ×1

stata ×1

subset ×1

tm ×1

vector ×1

xtable ×1