读取csv文件并更改为字符的语法

时间:2015-06-21 20:49:15

标签: r csv

我有一个csv文件,正在阅读我的程序。有人可以解释为什么

kfreq1=as.character(read.csv("set1.csv",header=FALSE,sep=","))

产生输出

[1] "c(35, 116, 103, 43, 76, 94, 102, 11, 108, 106, 80, 84, 1, 107, 21, 46, 50, 31, 19, 39, 30, 92, 88, 36, 22, 118, 38, 101, 12, 63, 60, 33, 91, 112, 9, 105, 52, 41, 18, 66, 56, 7, 69, 89, 74, 96, 3, 53, 57, 71, 100, 29, 113, 111, 58, 104, 62, 25, 59, 40, 83, 44, 110, 61, 68, 65, 67, 51, 85, 28, 13, 75, 17, 42, 115, 6, 8, 15, 78, 55, 73, 114, 47, 90, 34, 82, 95, 72, 97, 70, 4, 86, 117, 119, 45, 109, 26, 20, 81, 27, 2, 48, 98, 54, 64, 49, 87, 79, 120, 99, 10, 24, 23, 5, 37, 93, 14, 77, 32, 16)"
[2] "c(7, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)"

尚未

kfreq1=as.character(read.csv("set1.csv",header=FALSE,sep=",")$V1)

产生输出

[1] "environmental"     "using"             "software"          "experience"        "policy"           
[6] "research"          "skills"            "candidate"         "support"           "statistical"
...

作为参考,文件格式如下

environmental,7
using,5
software,4 

1 个答案:

答案 0 :(得分:3)

我们可以使用read.csv读取数据,如OP代码所示。

  df1 <- read.csv("set1.csv",header=FALSE, sep=",")

如果我们需要将列转换为&#39;字符&#39;在colClasses中使用read.csv参数的类是一个选项,如果有其他class例如,这也是有用的。 &#39;日期&#39 ;.另一种方法是在stringsAsFactors=FALSE中指定read.csv/read.table。默认方法是stringsAsFactors=TRUE,因此通过不在factor中指定stringsAsFactors参数,任何非数字列都将转换为read.csv/read.table类。

假设我们需要将单个factor列转换为character类,我们会使用df1$V1df1[,'V1']df1[['V1']]或数字提取列列df1[,1]的索引和as.numeric换行(在此示例中,我们只有一个factor列。)

 df1$V1 <- as.character(df1$V1)

如果我们需要将所有factor列转换为character(一般情况下),我们可以在所有lapplyfactor上使用df1[indx]循环播放})在数据集中。

 indx <- sapply(df1, is.factor)#create a logical index of 'factor' columns
 df1[indx] <- lapply(df1[indx], as.character) 

关于将&#39; V1&#39;中的单词大写的问题的第二部分?列,我们可以使用函数toupper

 df1$V1 <- toupper(df1$V1)
 df1$V1
 #[1] "ENVIRONMENTAL" "USING"         "SOFTWARE"    

注意:这也适用于factor类,但输出将为character类。