【问题标题】:How to get a .csv file into R?如何将 .csv 文件导入 R?
【发布时间】:2011-03-24 10:36:36
【问题描述】:

我有这个 .csv 文件:

ID,GRADES,GPA,Teacher,State

3,"C",2,"Teacher3","MA"

1,"A",4,"Teacher1","California"

我想要做的是使用 R 统计软件读入文件并将 Header 读入某种列表或数组(我是 R 新手,一直在寻找如何做到这一点,但是远没有运气)。

这是我想做的一些伪代码:

inputfile=read.csv("C:/somedirectory")

for eachitem in row1:{

add eachitem to list
}

然后我希望能够使用这些名称来调用每个垂直列,以便我可以执行计算。

我已经在谷歌上搜索了一个小时,试图找出如何做到这一点,但没有太多关于专门处理标题的内容。

感谢您的帮助!

【问题讨论】:

标签: r csv


【解决方案1】:

您需要read.csv("C:/somedirectory/some/file.csv"),通常实际查看帮助页面(包括底部的示例部分)并没有什么坏处。

【讨论】:

    【解决方案2】:

    正如 Dirk 所说,您所追求的功能是“read.csv”或其他 read.table 变体之一。鉴于您上面的示例数据,我认为您会想要做这样的事情:

    setwd("c:/random/directory")
    
    df <- read.csv("myRandomFile.csv", header=TRUE)
    

    我们在上面所做的只是将目录设置为 .csv 文件所在的位置,然后将 .csv 读入名为 df 的数据帧中。您可以通过检查对象的结构来检查数据是否正确加载:

    str(df)
    

    假设数据加载正确,您可以考虑继续对数据框中的数据执行任意数量的统计方法。我认为summary(df) 将是一个不错的起点。学习如何在 R 中使用帮助将非常有用,快速阅读 CRAN 上的帮助将为您节省大量时间:http://cran.r-project.org/

    【讨论】:

      【解决方案3】:

      您提到您将调用每个垂直列,以便您可以执行计算。我假设您只想检查每个变量。这可以通过以下方式完成。

      df <- read.csv("myRandomFile.csv", header=TRUE)
      
      df$ID
      
      df$GRADES
      
      df$GPA
      

      仅将数据分配给变量可能会有所帮助。

      var3 <- df$GPA
      

      【讨论】:

      • 是的,我确实想访问每个变量,但是我并不总是知道它们使用什么标签...我希望通过位置而不是实际名称来循环它们。
      • str(df) 将为您提供数据集中每个变量的变量名称。如果您想知道每个单个变量的级别,例如 GPA,请运行 attributes(df$var3) 或 levels(df$var3)
      【解决方案4】:

      你可以使用

      df <- read.csv("filename.csv", header=TRUE)
      
      # To loop each column
      for (i in 1:ncol(df))
          {
          dosomething(df[,i])
          }
      # To loop each row
      for (i in 1:nrow(df))
          {
          dosomething(df[i,])
          }
      

      此外,如果您想在每一行/列上使用相同的函数,您可能需要查看 apply 函数(键入 ?applyhelp(apply)

      【讨论】:

        【解决方案5】:

        如果对你有帮助,请检查一下

        df

        一个[2] $V2 [1] 等级 等级:等级

        一个[3] $V3 [1] 平均绩点 等级:GPA

        一个[4] $V4 [1] 老师 级别:教师

        一个[5] $V5 [1] 状态 级别:状态

        【讨论】:

          【解决方案6】:

          既然你说你想在读入数据后按位置访问,你应该了解 R 的子集/索引功能。

          最简单的是

          df[row,column]
          #example
          df[1:5,] #rows 1:5, all columns
          df[,5] #all rows, column 5. 
          

          其他方法是here。我个人使用dplyr 包进行直观的数据操作(不是按位置)。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-01-15
            • 1970-01-01
            • 2019-11-07
            • 2015-10-04
            • 2017-09-05
            • 1970-01-01
            相关资源
            最近更新 更多