从网址

时间:2017-10-27 00:17:38

标签: r csv

我是一名学习R的新生,我有一个简单的问题,但我处于大脑锁定状态。

我正在使用RStudio,我正在尝试编写一个简单的函数来转到url并带回csv(人口普查表)。我可以通过单独的行来获取数据...但我知道我错过了一些简单的东西,但我无法实现。 如果我运行这个

   urlToRead <-"https://www2.census.gov/programs-surveys/popest/tables   /2010-2011/state/totals/nst-est2011-01.csv"

和这些

   testFrame <- read.csv(url(urlToRead))
   str(testFrame)

我可以看到返回&#39; testFrame&#39;在我的数据和&#39; urltoread&#39;在我的环境中。工作得很好。 我的任务是尝试编写一个基本功能来执行此操作。 如果我在下面运行我的功能,我会得到&#39; str&#39;回到我的控制台,但没有数据或值

   chris<- function(url)
{
urlToRead <-(url)
 testFrame<- read.csv(url(urlToRead))
return(str(testFrame))
}
chris ("https://www2.census.gov/programs-surveys/popest/tables/2010-2011/state/totals/nst-est2011-01.csv")

我确信这很简单,我希望我能正确地格式化问题,并为长篇文章道歉,但我可以使用kickstart

谢谢

克里斯

2 个答案:

答案 0 :(得分:3)

return(str(testFrame))更改为return(testFrame)或将其完全删除。

R中的函数基本上只输出'return'命令中的内容,如果没有'return',它将自动输出生成的最后一个对象。您的原始代码强制它仅返回数据框的结构(str),而不是数据框本身。

编辑:只是为了澄清,如果你完全删除return,你需要在进行函数调用时分配一个新变量。 e.g。csvData <- chris(url)

答案 1 :(得分:1)

   chris<- function(url)
    {
     urlToRead <-(url)
      testFrame<- read.csv(url(urlToRead))
     return(testFrame)
   }
       testframe=chris ("https://www2.census.gov/programs-surveys/popest/tables/2010-
   2011/state/totals/nst-est2011-01.csv")