小编ZRo*_*oss的帖子

R包Haven中带有SPSS的可变标签

我正在尝试使用避风港软件包从SPSS por文件访问变量标签(这是变量的描述)。我可以用外国包裹做得很好,但我想使用避风港。有什么建议么?

# Using foreign I can get the variable labels
with_foreign <- foreign::read.spss(mydata.por)
attr(with_foreign, "variable.labels")

# With haven I get null
with_haven <- haven::read_spss(mydata.por)
attr(with_haven, "variable.labels")

# Some things I've experimented with
labelled::var_label(with_haven) # NULL
attributes(with_haven) # Not useful
as_factor(with_haven$var1) # Gives me definitions for factor levels (not what I need)
Run Code Online (Sandbox Code Playgroud)

import r r-haven

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

使用dplyr mutate_at和自定义函数

我想从表中取两个变量并将它们除以第三个变量,并将这些计算添加为两个新列.该mutate_at()让我非常接近,但在自定义函数中,f()下面,我想在数据集中访问另一列.任何建议或替代整洁的工具方法?

library(dplyr)
# this works fine but is NOT what I want
f <- function(fld){
  fld/5
}

# This IS what I want where wt is a field in the data
f <- function(fld){
  fld/wt
}

mutate_at(mtcars, .vars = vars(mpg, cyl), .funs = funs(xyz = f))

# This works but is pretty clumsy
f <- function(fld, dat) fld/dat$wt
mutate_at(mtcars, .vars = vars(mpg, cyl), .funs = funs(xyz = f(., mtcars)))

# This is closer but still it …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

R包dplyr中的head()函数

这是一个小问题,但在R中键入head(data.frame)时,您将从显示的所有列中获取前几条记录.在dplyr包中,head函数已被更改为仅显示可适合您的控制台窗口的列.这通常很好,但我经常想看到所有列的前几条记录.有没有办法告诉head(在dplyr中)显示所有列而不将tbl.df/data.frame转换为data.frame(我更喜欢head to str()).

谢谢!

ZR

r dplyr

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

在R包中导入一个函数(不含importFrom)

我正在写一个R包,我想使用另一个包中的一个函数(plotKML).这个外部包有很多依赖,我不希望我的用户需要下载等.如果我importFrom(plotKML, readGPX)在NAMESPACE文件中使用它将加载plotKML到命名空间并下载所有我不想要的依赖项.

所以问题是:是否适合复制我需要的一个函数的代码(确保包含该函数中的所有依赖项)?如果是这样,什么是适合归属/文档 - 我是否从原始文档中复制文档?

这篇文章中对这个问题进行了很好的讨论,Brian Diggs的回答非常有帮助.但他最后说:"对于你的例子,你可能最好将memisc :: describe的代码复制到你的软件包中,尽管这种方法有其自身的问题和注意事项"所以我对问题的存在有一些不确定性.从归因的角度来看它是否合适.

r r-package

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

dplyr mutate失败了命名向量?

dplyr's mutate当我给它命名一个向量时,我很惊讶地发现这个函数失败了.在这种情况下,它是模型的残差.这是预期的行为吗?奇怪的是,如果命名向量不直接来自data.frame,它似乎工作正常.如果我删除名称也可以正常工作.

toy <- data.frame(x = rnorm(100), y=rnorm(100))
mod <- lm(y~x, data = toy)

# Error: invalid subscript type 'list'
toy <- mutate(toy, fit = mod$fit, res = mod$res)

# Fine
fit <- mod$fit
res <- mod$res
toy <- mutate(toy, fit = fit, res = res)

# Fine
toy <- mutate(toy, fit = unname(mod$fit), res = unname(mod$res))
Run Code Online (Sandbox Code Playgroud)

更新:

我跟进了一些建议,似乎没有用.plyr没有加载(我也试过dplyr :: mutate来确保双重).我使用的是0.4.2.这是一个包含会话信息的屏幕截图.

在此输入图像描述

r dplyr

5
推荐指数
0
解决办法
1503
查看次数

带有特殊字符的R gsub

我试图用我认为的标准短划线替换gsub.我测试的代码是:

gsub("-", "ABC", "reported – estimate")

但这没有任何作用.我将破折号复制并粘贴到http://unicodelookup.com/#-/1中,似乎是一个冲刺.那个网站提供了一个简单的十六进制,十二进制等代码,我一直试图取代短划线,但我没有运气.建议?

(作为奖励,如果你能告诉我是否有识别特殊字符的功能会有帮助).

我不确定SO的代码格式是否会改变破折号格式,所以这里是我正在使用的破折号( - ).

regex r

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

防止在 Shiny 中对应用程序加载执行观察

在 Shiny 中,观察语句在应用程序加载时运行,我想在某些情况下阻止这种情况。例如,我可能有两个标题,我想以某个值启动,并且在应用程序加载后我希望它们同步。

在下面的代码中,如果您运行它,标题将在无限循环中更新,因为应用程序会立即更新一个标题,然后更新另一个标题,依此类推。如果您取消注释下面的“first_time”代码块之一,则两个标题将显示为以相同的值开头。如果您取消注释这两个块,那么它将执行我想要的操作 - 从预先指定的值开始,然后在进行更改时同步。

但这段代码很复杂,我不想if在所有观察者中添加语句。一定有更简单的方法。在查看文档时,似乎可能使用suspended = TRUEandresume()但我找不到示例。

我问了一个相关的问题,这个问题的答案同样不优雅。有什么想法吗?

library(shiny)

first_time1 <<- TRUE
first_time2 <<- TRUE

server <- function(input, output, session) {

  observeEvent(input$title1, {
    # if(first_time1){
    #   first_time1 <<- FALSE
    #   return()
    # }
    updateTextInput(session, "title2", value = input$title1)

  })

  observeEvent(input$title2, {
    # if(first_time2){
    #   first_time2 <<- FALSE
    #   return()
    # }
    updateTextInput(session, "title1", value = input$title2)
  })

} 

ui <- fluidPage(
  tabsetPanel(


    tabPanel("A", textInput("title1", "titleA", "This is the title A")), …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

dplyr安排不按团体安排

在这个超级简单的代码中,我希望dplyr首先按我的分组变量(金发)排列,然后按年龄排列,但似乎根本没有考虑到分组变量。我敢肯定,过去这对我来说是不同的。我想要(并期望)的是它会首先按金发排列(因为这是分组变量),然后按年龄排列。我正在使用dplyr_0.5.0。当我在分组变量上使用mutate进行测试时,其行为符合预期,计算了分组平均值。

我知道我可以按金发和年龄进行排列,但是我认为以前的dplyr版本会在使用排列时解释分组变量吗?我记错了吗?

# In this code I expect it to order by the grouping
# variable first (blonde) then age.
df <- data.frame(blonde = c(0,1,0,1), 
                 age=24:21)

group_by(df, blonde) %>% arrange(age)

Source: local data frame [4 x 2]
Groups: blonde [2]

  blonde   age
   <dbl> <int>
1      1    21
2      0    22
3      1    23
4      0    24
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

使用R package sf写入带坐标的CSV

我想知道是否有一种简单的方法来编写包含坐标的点sf对象(sfR包)的CSV .

你可以使用st_write(input, "output.csv")它,它会写一个没有坐标的CSV.我编写带坐标文件的黑客是:

coords <- st_coordinates(input)
input_dat <- input %>% st_set_geometry(., NULL)
input_dat <- cbind(input_dat, coords)
Run Code Online (Sandbox Code Playgroud)

但似乎必须有一种更简单的方法.

根据要求,以下是上述代码的设置:

input <- data.frame(ID = 1:10, longitude = rnorm(10), latitude = rnorm(10))
input <- st_as_sf(input, coords = c("longitude", "latitude"))
Run Code Online (Sandbox Code Playgroud)

csv r spatial r-sf

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

标签 统计

r ×9

dplyr ×4

csv ×1

import ×1

r-haven ×1

r-package ×1

r-sf ×1

regex ×1

shiny ×1

spatial ×1