如何为数据框中的多个标记向量设置缺失值.我正在使用spss的调查数据集.我正在处理大约20个不同的变量,具有相同的缺失值.所以想找到一种方法来使用lapply()来完成这项工作,但我不能.
我实际上可以用基数R通过as.numeric()然后重新编码()来做到这一点,但我对避风港和标记类的可能性很感兴趣所以我想在Hadley的tidyverse中找到一种方法来做到这一切
大致相关的变量看起来像这样.如果这是一个基本问题,我很抱歉,但我发现与避风港相关联的帮助文档和标记的包只是非常无益.
library(haven)
library(labelled)
v1<-labelled(c(1,2,2,2,5,6), c(agree=1, disagree=2, dk=5, refused=6))
v2<-labelled(c(1,2,2,2,5,6), c(agree=1, disagree=2, dk=5, refused=6))
v3<-data.frame(v1=v1, v2=v2)
lapply(v3, val_labels)
lapply(v3, function(x) set_na_values(x, c(5,6)))
Run Code Online (Sandbox Code Playgroud) 我收到了一些很好的帮助,我的数据格式正确,在这里用mlogit生成一个多项逻辑模型(格式化mlogit的数据)
但是,我现在正在尝试分析协变量在我的模型中的影响.我发现帮助文件mlogit.effects()不是很有用.其中一个问题是该模型似乎产生了大量的NA(见下文index(mod1)).
mlogit.effects使用下面的数据吗?multinom().但是,我无法弄清楚如何格式化数据以适合使用的公式multinom().我的数据是七个不同项目(可访问,信息,权衡,辩论,社交和响应)的一系列排名我是否只是模拟他们选择的第一个等级并忽略他们在其他等级中选择的内容?我可以得到这些信息.可重现的代码如下:
#Loadpackages
library(RCurl)
library(mlogit)
library(tidyr)
library(dplyr)
#URL where data is stored
dat.url <- 'https://raw.githubusercontent.com/sjkiss/Survey/master/mlogit.out.csv'
#Get data
dat <- read.csv(dat.url)
#Complete cases only as it seems mlogit cannot handle missing values or tied data which in this case you might get because of median imputation
dat <- dat[complete.cases(dat),]
#Change the choice index variable (X) to have no interruptions, as a result of removing some …Run Code Online (Sandbox Code Playgroud) 我有一些模型的标题很长,可以完全解释。让他们在两行上打印其描述符或标题会很有帮助。这将读取换行符,但所得的乳胶输出无法识别该字符。
var1<-rnorm(100)
var2<-rnorm(100)
df<-data.frame(var1, var2)
mod<-lm(var1~var2)
library(stargazer)
stargazer(mod, column.labels='my models\nneed long titles')
Run Code Online (Sandbox Code Playgroud)
谢谢。
您好:我正在用 Markdown 编写一些讲座,并将它们转换为 Reveal.js 幻灯片。老实说,它工作得很好,除了我想修改一些基本功能,但我只是不知道如何使用 CSS。
我怎么能够:
谢谢你!!
我对 R 相当精通,但对 javaScript 和其他语言完全一无所知。我想访问有关此公开数据集的信息(http://fyed.elections.on.ca/fyed/en/form_page_en.jsp)。特别是,我在数据框中有一个包含数千个邮政编码(“A1A1A1”)形式的列表。我想将每个邮政编码提交到该网站,然后提取返回的选区名称。RSelenium 似乎很理想,但我不知道如何让 javascript 工作。我正在使用 Mac OS 10.9.5、R 3.0.3 和 RSelenium_1.3。Firefox 是 v.33,Selenium 是 2.44。以下脚本有效。
require(RSelenium)
checkForServer()
startServer()
remDr<-remoteDriver()
remDr$open()
remDr$getStatus()
remDr$navigate("http://fyed.elections.on.ca/fyed/en/form_page_en.jsp")
#After inspecting the source code, you can see the input box has the id 'pcode', for postal code
webElem<-remDr$findElement(using = 'id', value = "pcode")
webElem$getElementAttribute('id')
#This is where I am stuck
remDr$executeScript(script='arguments[0].click(m1p4v4)', list(webElem))
#Utlimately, I have a list of several thousand postal codes, so I would like to create a loop through to …Run Code Online (Sandbox Code Playgroud) 你好:我是 plyr/dplyr 系列的新手,但很喜欢它。我可以看到它对我自己的工作有巨大的实用性,但我仍在努力解决它。
我有一个如下所示的数据框。
1) 如何为每个非分组变量生成一个表格,以显示分组变量的每个值内的响应分布?
2)注意:我确实有一些缺失值,我想将它们从列表中排除。我意识到 summarise_each 命令会将函数应用于每一列,但我不知道如何以简单的方式处理缺失值问题。我见过一些代码建议您必须过滤掉缺失值,但是如果缺失值随机分散在非分组变量中怎么办?
3)从根本上说,最好只使用 dplyr 的完整案例吗?
#library
library(dplyr)
#sample data
group<-sample(c('A', 'B', 'C'), 100, replace=TRUE)
var1<-sample(c(1,2,3,4,5,NA), 100, replace=TRUE, prob=c(0.15,0.15,0.15,0.15,0.15,0.25))
var2<-sample(c(1,2,3,4,5,NA), 100, replace=TRUE, prob=c(0.15,0.15,0.15,0.15,0.15,0.25))
var3<-sample(c(1,2,3,4,5,NA), 100, replace=TRUE, prob=c(0.15,0.15,0.15,0.15,0.15,0.25))
df<-data.frame(group, var1, var2, var3)
#my code
out_df<-df %>%group_by(group)
out_df %>% summarise_each(funs(table))
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的数据框(见链接).我想获取下面产生的输出,并通过在n和平均变量上扩展色调变量更进一步.似乎这个主题可能会对此产生影响,但我无法使其工作: 是否可以在tidyr中的多个列上使用传播类似于dcast?
我希望最终表将源变量放在一列中,然后将tone-n和tone-avg变量放在列中.所以我希望列标题为"source" - "For - n" - "Against - n""For -Avg" - "Against - Avg".这是出版物,不是为了进一步计算,所以它是关于呈现数据.以这种方式呈现数据对我来说似乎更直观.谢谢.
#variable1
Politician.For<-sample(seq(0,4,1),50, replace=TRUE)
#variable2
Politician.Against<-sample(seq(0,4,1),50, replace=TRUE)
#Variable3
Activist.For<-sample(seq(0,4,1),50,replace=TRUE)
#variable4
Activist.Against<-sample(seq(0,4,1),50,replace=TRUE)
#dataframe
df<-data.frame(Politician.For, Politician.Against, Activist.For,Activist.Against)
#tidyr
df %>%
#Gather all columns
gather(df) %>%
#separate by the period character
#(default separation character is non-alpha numeric characterr)
separate(col=df, into=c('source', 'tone')) %>%
#group by both source and tone
group_by(source,tone) %>%
#summarise to create counts and average
summarise(n=sum(value), avg=mean(value)) %>%
#try to spread
spread(tone, c('n', 'value'))
Run Code Online (Sandbox Code Playgroud) 我正在努力寻找有效地将标记变量转化为因素的方法。我正在使用的数据集可从此处获取:[ https://www.dropbox.com/s/jhp780hd0ii3dnj/out.sav?dl=0][1]。这是一个 spss 数据文件,我喜欢使用它,因为我的同事也使用它。
当我读入数据时,您可以看到文件中的每个因素都变成了“标记”类。
#load libraries
library(haven)
library(tidy)
library(dplyr)
#Import
test<-read_sav(path='~/your/path/name/out.sav')
#Structure
str(test)
#Find Class
sapply(test, class)
Run Code Online (Sandbox Code Playgroud)
我遇到的第一个问题是 ggplot2 不知道如何将比例应用于标记的类。
#
td<-ford %>%
select(income, stress) %>%
group_by(income, stress)%>%
filter(is.na(stress)==FALSE)%>%
filter(is.na(income)==FALSE)%>%
summarize(Freq=n())%>%
mutate(Percent=(Freq/sum(Freq))*100)
#Draw plot
ggplot(td, aes(x=income, y=Percent, group=stress))+
#barplot
geom_bar(aes(fill=stress), stat='identity')
Run Code Online (Sandbox Code Playgroud)
通过将分类变量“收入”包装在 as_factor() 中可以很好地解决这个问题
#Draw plot
ggplot(td, aes(x=as_ford(income), y=Percent, group=stress))+
#barplot
geom_bar(aes(fill=stress), stat='identity')
Run Code Online (Sandbox Code Playgroud)
然而,这对 rone 变量有效,如果我正在进行探索性研究,我可能会做很多带有很多标记变量的图。这让我觉得需要额外打字很多。
当您收集大量变量来绘制多个交叉表时,这个问题会被放大,您会丢失值标签。
##Visualizations
test<-ford %>%
#The first two variables are the grouping, variables for a series of cross tabs
select(ford, stress,resp_gender, immigrant2, education, …Run Code Online (Sandbox Code Playgroud) 我有一系列线性模型,我想报告每个模型的标准化系数。然而,当我在 stargazer 中打印模型时,stargazer 似乎自动打印标准化系数的重要性星星,就好像它们是非标准化系数一样。您可以在下面看到差异是如何出现的。
根据非标准化值打印重要性星星在统计上是否错误?在观星者中这是如何完成的?谢谢!
#load libraries
library(stargazer)
library(lm.beta)
#fake data
var1<-rnorm(100, mean=10, sd=5)
var2<-rnorm(100, mean=5, sd=2)
var3<-rnorm(100, mean=2, sd=3)
var4<-rnorm(100, mean=5, sd=1)
df<-data.frame(var1, var2, var3, var4)
#model with unstandardized betas
model1<-lm(var1~var2+var3+var4, data=df)
#Standardized betas
model1.beta<-lm.beta(model1)
#print
stargazer(model1, model1.beta, type='text')
Run Code Online (Sandbox Code Playgroud) 你好:我正在尝试找到每组中最低的日期。目的是找出几个时间序列中每个时间序列的共同日期。目前的数据是这样的。
library(tidyr)
library(dplyr)
grouping_variable<-sample(c('a', 'b', 'c'), 500, replace=TRUE)
date<-sample(seq(as.Date('1999/01/01'), as.Date('2015/01/01'), by="day"), 500)
numeric_variable<-rnorm(500, 50, sd=2)
df<-data.frame(grouping_variable, date, numeric_variable)
Run Code Online (Sandbox Code Playgroud)
而我的工作尝试基本上就是这样。
df %>%
group_by(grouping_variable)%>%
min(date)
Run Code Online (Sandbox Code Playgroud) 我发现自己一直在编写这段代码来产生组均值的标准误差(然后用于绘制置信区间)。
不过,在一行代码中编写自己的函数来执行此操作会很好。我已阅读NSE在dplyr小品非标准评价和这个博客帖子为好。我有点明白,但我太菜了,无法自己解决这个问题。任何人都可以帮忙吗?谢谢。
var1<-sample(c('red', 'green'), size=10, replace=T)
var2<-rnorm(10, mean=5, sd=1)
df<-data.frame(var1, var2)
df %>%
group_by(var1) %>%
summarize(avg=mean(var2), n=n(), sd=sd(var2), se=sd/sqrt(n))
Run Code Online (Sandbox Code Playgroud) 我一直与 SPSS 和 STata 的合作者一起工作,因此清晰的变量标签对于传达对任何给定变量所做的操作及其记录的内容非常重要。
如何在 tidyverse 上下文中最有效地使用变量标签重命名变量。我可以做到这一点,但看起来很笨拙。
var1<-rnorm(100)
var2<-rnorm(100)
var3<-rnorm(100)
group_var<-sample(c("A", "B"), size=100, replace=T)
other_var1<-rnorm(100)
other_var2<-rnorm(100)
df<-data.frame(var1, var2, var3, group_var, other_var1, other_var2)
library(labelled)
library(tidyverse)
df %>%
set_variable_labels(var1="Measure 1",
var2="Measure 2",
var3="Measure 3",
group_var="Grouping Variable")->df
#Store variable labels
df %>%
select(starts_with("var")) %>%
var_label() %>%
unlist()->variable_labels
variable_labels<-data.frame(name=names(variable_labels), labels=variable_labels)
df %>%
pivot_longer(var1:var3) %>%
left_join(., variable_labels, by="name")
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个rename_with功能在这里发挥作用?这不行。
df %>%
rename_with(., function(x) var_label(x),.cols=var1:var3)
Run Code Online (Sandbox Code Playgroud) I'm trying efficiently plot a series of bivariate barplots. Each plot should show the frequency of cases of a series of demographic variables distributed by gender. This code works nicely but when creating the tidied variable variable it's levels are all the levels of the different demographic variables. As it is a new factor, R orders the factor levels in it's own alphabetical way. But, as you can see from the factor levels of 'variable' below and the resulting plot, …