将data.frame中的级别导出到csv

时间:2012-02-17 14:11:48

标签: r csv dataframe

#creating dataframe    
df1=data.frame(c("Mary","Sarah","Linda","Mark","Shaun","Jo"),c(1,2,3,4,5,6),c(2,2,2,1,1,2))
names(df1)=c("a","b","c")
#setting levels and labels for questions b and c
blevels=c(1,2,3,4,5,6)
blabels=c("bike","walk","car","bus","train","subway")
clevels=c(1,2)
clabels=c("male","female")
#creating labelled data.frame
df2=df1
#applying labels
df2$b<-factor(df1$b,blevels,blabels)
df2$c<-factor(df1$c,clevels,clabels)

我使用R为调查回复创建频率表,并使用值标签创建更有用的频率表。

我还在创建频率表之前编辑R中的数据以删除无效值,并使用write.csv导出data.frame以供参考。

我希望导出的data.frame显示每个问题的编码,而不是它的标签。目前为此,我为频率创建了一个新的标记data.frame并导出原始data.frame。

这会导致参考和分析data.frames之间存在差异的危险。

有没有办法将级别而不是标签导出到csv文件?

1 个答案:

答案 0 :(得分:1)

创建一个从单个向量中剥离级别的函数:

f <- function(x) {
   if(is.factor(x)) {
      return(as.numeric(x))
   } else {
      return(x)
   }
}

将该功能应用于data.frame:

df <- sapply(f,df)