我为这个问题的广泛性向前道歉,但我想知道是否有人有任何建议/指针.
朋友的公司使用SPSS进行统计数据,调查等.他们希望能够通过网络界面对信息进行切片和切块.我不了解SPSS,所以可能有一个简单的Web前端,但作为一个PHP/MySQL人,我想知道是否可以以MySQL可以导入或PHP可以解析的方式导出SPSS数据.然后我可以构建一个AJAX前端来实时返回查询.
这个想法将是一个结果表,当您选择"性别:男性","年龄:20-25"等选项时会发生变化...每次更改都会在浏览器中更新结果.
所以...
1)SPSS可以通过某种前端实现这一目标吗?
2)数据是否可以以通用格式轻松导出?
在与朋友的老板谈论想法之前,我只是想知道自己是否在傻瓜的事上.
TIA.唐
更新:我在朋友的公司开会讨论更多具体细节.听起来SPSS数据存储在MS SQL Server中,所以我想我可以直接连接到数据,如果我能看到某种模式逻辑并编写我自己的Web前端.
或者,我可以将数据的预定数据转储转换为另一种格式.
像往常一样,我得到了一些SPSS文件,我已经使用包中的spss.get函数导入到R中Hmisc.我被添加到所有变量中的labelled类所困扰,因此想要删除它.Hmisc::spss.getdata.frame
labelled当我尝试跑步ggplot或甚至当我想做一些卑鄙的分析时,课程让我头疼!一种解决方案是从中删除labelled每个变量的类data.frame.我怎样才能做到这一点?这有可能吗?如果没有,我的其他选择是什么?
我真的想绕过"从零开始"与重新编辑变量as.data.frame(lapply(x, as.numeric)),并as.character在适用情况下......我当然不希望运行SPSS并手动删除标签(不喜欢SPSS,也不关心安装它)!
谢谢!
我正在寻找使用SPSS文件(.sav)pandas.在没有SPSS程序的情况下,这是转换为.csv时典型文件的样子:
在调查前两行的含义(我不知道SPSS)时,似乎第一行包含Labels,而第二行包含VarNames.
当我将文件带入熊猫时:
import pandas.rpy.common as com
def savtocsv(filename):
w = com.robj.r('foreign::read.spss("%s", to.data.frame=TRUE)' % filename)
w = com.convert_robj(w)
return w
Run Code Online (Sandbox Code Playgroud)
然后执行head(),第一行(Label)丢失:
如何维护标签?
我在R工作,但我需要提供一些SPSS格式的数据,包括"变量标签"和"价值标签",我有点卡住了.
我已经添加变量标签使用我的数据Hmisc的label功能.这将变量标签添加为a label attribute,describe()从Hmisc包中使用时很方便.问题是我无法write.foreign()从foreign包中获得将这些标签识别为变量标签的功能.我想我需要修改write.foreign()以在编写文件时使用label attributeas .variable label.sps
我查看了R列表和stackoverflow,但我只能在R列表中找到2006年关于从R中将varibles标签导出到SPSS的帖子,它似乎没有回答我的问题.
这是我的工作示例,
# First I create a dummy dataset
df <- data.frame(id = c(1:6), p.code = c(1, 5, 4, NA, 0, 5),
p.label = c('Optometrists', 'Nurses', 'Financial analysts',
'<NA>', '0', 'Nurses'), foo = LETTERS[1:6])
# Second, I add some variable labels using label from the Hmisc package
# install.packages('Hmisc', dependencies …Run Code Online (Sandbox Code Playgroud) 我正在使用SPSS 15创建几个Excel报告,然后我使用Excel宏进行整合.不幸的是,特定的SPSS版本会生成.xls文件,这些文件对于Excel 2007及更高版本来说都不易读取.Excel 2003可以很好地吞噬这些文件,但是较新的Excel版本会显示两条错误消息.首先是"Excel在filename.xls中找到了不可读的内容.你想要恢复这个工作簿的内容吗?".单击是后,此后出现"文件错误:数据可能已丢失".不幸的是这些错误消息导致我的宏退出第一个文件,错误代码为1004.这是我用来打开我的Excel文件的代码:
If Len(Dir(ThisWorkbook.Path + "\filename.xls")) <> 0 Then
Workbooks.Open Filename:=ThisWorkbook.Path + "\filename.xls"
End If
Run Code Online (Sandbox Code Playgroud)
我与IBM(SPSS供应商)进行了核实,他们告诉我这个特殊问题已在SPSS 16中修复,但由于商业原因,升级不在卡上.现在有一个手动解决方法,涉及打开文件并再次保存,但有几十个显然没有乐趣的文件.因此,我正在寻找一种方法来自动修复宏中的那些损坏的工作簿.
更多信息:我们正在使用Excel 2010工作,Excel 2003不可用.此处提供了一个示例文件:https://onedrive.live.com/?cid = 52106BC267261CBF&id = 52106BC267261CBF!292
我正在研究一个SPSS文件(.sav).我下面的代码可以读取.sav文件.但是,我遇到了一个非常奇怪的错误.当我尝试读取另一个.sav文件时,它会出现以下错误
Traceback (most recent call last):
File "C:\Users\fatihshen\Documents\Merjek
Project\Predictive_Analytics\sav_reader.py", line 28, in <module>
read_spss_file(file_path)
File "C:\Users\fatihshen\Documents\Merjek
Project\Predictive_Analytics\sav_reader.py", line 10, in read_spss_file
records = reader.all()
File "C:\Users\fatihshen\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\savReaderWriter\savReaderNp.py", line 541, in all
return self.to_structured_array(filename)
File "C:\Users\fatihshen\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\savReaderWriter\savReaderNp.py", line 122, in _convert_datetimes
array = func(self, *args)
File "C:\Users\fatihshen\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\savReaderWriter\savReaderNp.py", line 148, in _convert_missings
array = func(self, *args)
File "C:\Users\fatihshen\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\savReaderWriter\savReaderNp.py", line 531, in to_structured_array
array = np.fromiter(self, self.trunc_dtype, self.nrows)
File "C:\Users\fatihshen\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\savReaderWriter\helpers.py", line 17, in fget_memoized
setattr(self, attr_name, fget(self))
File "C:\Users\fatihshen\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\savReaderWriter\savReaderNp.py", …Run Code Online (Sandbox Code Playgroud) 我有一个很大的 CSV 文件,它带有两个元数据描述文件。一个有.sas扩展名,另一个有.sps. 打开它们,它们描述了 CSV 数据格式和类别。这些文件描述了每列的数据格式和可能的类别。例如,值为 1 或 2 的列映射到yes和no。
如何使用这些元数据文件来帮助我阅读 CSV 文件?
我可以使用 read_csv 轻松阅读它,但这些文件对于自动创建具有可能类别的列很有用。我可以为它们创建一个解析器,但必须有一个包或函数来做到这一点。也许我没有使用正确的搜索词。
这是.sas文件(对不起,它是葡萄牙语):
proc format;
Value $SG_AREA
CH='Ci?ncias Humanas'
CN='Ci?ncias da Natureza'
LC='Linguagens e C?digos'
MT='Matem?tica';
Value $TP_LINGUA
0='Ingl?s'
1='Espanhol';
Value $IN_ITEM_ADAPTADO
0='N?o'
1='Sim';
DATA WORK.ITENS_2018;
INFILE 'C:\ITENS_PROVA_2018.csv' /*local do arquivo*/
LRECL=33
FIRSTOBS=2
DLM=';'
MISSOVER
DSD ;
INPUT
CO_POSICAO : BEST2.
SG_AREA : $CHAR2.
CO_ITEM : BEST6.
TX_GABARITO : $CHAR1.
CO_HABILIDADE : BEST2.
TX_COR : $CHAR7. …Run Code Online (Sandbox Code Playgroud) 有没有办法将SPSS数据集导入Python,最好是NumPy重新格式?我环顾四周但找不到任何答案.
俊
这个问题的讨论是我提出这个问题的直接原因.更一般的原因是我经常需要向只熟悉SPSS的人解释R使用.我知道SPSS的大部分基础知识,因为我们仍然在基础课程统计中使用它.但由于我更像是一个R家伙,因此很难知道SPSS用户如何体验与R的第一次见面.
我知道有一本关于SAS和SPSS用户的书,它已经包含了一些信息.然而,我想知道当你从SPSS切换到R时,更困难的部分是什么.
或者换句话说:如果您需要在一天内向SPSS用户解释R,您会关注哪些主题?这是不是对了(是的,我知道,这不是因为一个得到报酬,它总是有道理...)一个假设性的问题.
df1=data.frame(c("male","female","male"),c("1","2","3","4","5","6"),seq(141,170))
names(df1) = c("gender","age","height")
df1$age <- factor(df1$age,
levels=c(1,2,3,4,5,6),
labels=c("16-24","25-34","35-44","45-54","55-64","65+"))
q1a=c(1,0,1,0,0,1);q1b=c(0,0,2,2,2,0);q1c=c(0,0,3,3,0,3) #1,2 and 3 used to be compatible with existing datasets. Could change all to 1 if necessary.
df2=data.frame(q1a=q1a,q1b=q1b,q1c=q1c); df1 <- cbind(df1,df2)
rm(q1a,q1b,q1c,df2)
Run Code Online (Sandbox Code Playgroud)
我希望复制R中SPSS的多个响应问题的分析.
目前我正在使用此代码:
#creating function for analysing questions with grouped data
multfreqtable <- function(a, b, c){
# number of respondents (for percent of cases)
totrep=sum(a==1|b==2|c==3)
#creating frequency table
table_a=data.frame("a",sum(a==1))
names(table_a)=c("question","freq")
table_b=data.frame("b",sum(b==2))
names(table_b)=c("question","freq")
table_c=data.frame("c",sum(c==3))
names(table_c)=c("question","freq")
table_question <-rbind(table_a,table_b,table_c)
#remove individual question tables
rm(table_a,table_b,table_c)
#adding total
total=as.data.frame("Total")
totalsum=(sum(table_question$freq,na.rm=TRUE))
totalrow=cbind(total,totalsum)
names(totalrow)=c("question","freq")
table_question=rbind(table_question,totalrow)
#adding …Run Code Online (Sandbox Code Playgroud)