1

I stored a list of files in a list using this code:

filesList <- list.files(path="/Users/myPath/data/", pattern="*.csv") I then wanted to output it without the indexes (that usually appear of form [1] at start of each line, so I tried this:

sapply(filesList[order(filesList)], print)

The result is given below copied exactly from RStudio. Why does my list of files output twice? I can work with this, I am just curious.

[1] "IMDB_Bottom250movies.csv"
[1] "IMDB_Bottom250movies2_OMDB_Detailed.csv"
[1] "IMDB_Bottom250movies2.csv"
[1] "IMDB_ErrorLogIDs1_OMDB_Detailed.csv"
[1] "IMDB_ErrorLogIDs1.csv"
[1] "IMDB_ErrorLogIDs2_OMDB_Detailed.csv"
[1] "IMDB_ErrorLogIDs2.csv"
[1] "IMDB_OMDB_Kaggle_TestSet_OMDB_Detailed.csv"
[1] "IMDB_OMDB_Kaggle_TestSet.csv"
[1] "IMDB_Top250Engmovies.csv"
[1] "IMDB_Top250Engmovies2_OMDB_Detailed.csv"
[1] "IMDB_Top250Engmovies2.csv"
[1] "IMDB_Top250Indianmovies.csv"
[1] "IMDB_Top250Indianmovies2_OMDB_Detailed.csv"
[1] "IMDB_Top250Indianmovies2.csv"
[1] "IMDB_Top250movies.csv"
[1] "IMDB_Top250movies2_OMDB_Detailed.csv"
[1] "IMDB_Top250movies2.csv"
[1] "TestDoc2_KaggleData_OMDB_Detailed.csv"
[1] "TestDoc2_KaggleData.csv"
[1] "TestDoc2_KaggleData68_OMDB_Detailed.csv"
[1] "TestDoc2_KaggleData68.csv"
[1] "TestDoc2_KaggleDataHUGE_OMDB_Detailed.csv"
[1] "TestDoc2_KaggleDataHUGE.csv"
                    IMDB_Bottom250movies.csv      IMDB_Bottom250movies2_OMDB_Detailed.csv 
                  "IMDB_Bottom250movies.csv"    "IMDB_Bottom250movies2_OMDB_Detailed.csv" 
                   IMDB_Bottom250movies2.csv          IMDB_ErrorLogIDs1_OMDB_Detailed.csv 
                 "IMDB_Bottom250movies2.csv"        "IMDB_ErrorLogIDs1_OMDB_Detailed.csv" 
                       IMDB_ErrorLogIDs1.csv          IMDB_ErrorLogIDs2_OMDB_Detailed.csv 
                     "IMDB_ErrorLogIDs1.csv"        "IMDB_ErrorLogIDs2_OMDB_Detailed.csv" 
                       IMDB_ErrorLogIDs2.csv   IMDB_OMDB_Kaggle_TestSet_OMDB_Detailed.csv 
                     "IMDB_ErrorLogIDs2.csv" "IMDB_OMDB_Kaggle_TestSet_OMDB_Detailed.csv" 
                IMDB_OMDB_Kaggle_TestSet.csv                     IMDB_Top250Engmovies.csv 
              "IMDB_OMDB_Kaggle_TestSet.csv"                   "IMDB_Top250Engmovies.csv" 
     IMDB_Top250Engmovies2_OMDB_Detailed.csv                    IMDB_Top250Engmovies2.csv 
   "IMDB_Top250Engmovies2_OMDB_Detailed.csv"                  "IMDB_Top250Engmovies2.csv" 
                 IMDB_Top250Indianmovies.csv   IMDB_Top250Indianmovies2_OMDB_Detailed.csv 
               "IMDB_Top250Indianmovies.csv" "IMDB_Top250Indianmovies2_OMDB_Detailed.csv" 
                IMDB_Top250Indianmovies2.csv                        IMDB_Top250movies.csv 
              "IMDB_Top250Indianmovies2.csv"                      "IMDB_Top250movies.csv" 
        IMDB_Top250movies2_OMDB_Detailed.csv                       IMDB_Top250movies2.csv 
      "IMDB_Top250movies2_OMDB_Detailed.csv"                     "IMDB_Top250movies2.csv" 
       TestDoc2_KaggleData_OMDB_Detailed.csv                      TestDoc2_KaggleData.csv 
     "TestDoc2_KaggleData_OMDB_Detailed.csv"                    "TestDoc2_KaggleData.csv" 
     TestDoc2_KaggleData68_OMDB_Detailed.csv                    TestDoc2_KaggleData68.csv 
   "TestDoc2_KaggleData68_OMDB_Detailed.csv"                  "TestDoc2_KaggleData68.csv" 
   TestDoc2_KaggleDataHUGE_OMDB_Detailed.csv                  TestDoc2_KaggleDataHUGE.csv 
 "TestDoc2_KaggleDataHUGE_OMDB_Detailed.csv"                "TestDoc2_KaggleDataHUGE.csv"

The second copy (without the indexes) is close enough to copy-paste-use, jsut wondering why this happened ?

TMWP
  • 1,545
  • 1
  • 17
  • 31

1 Answers1

3

What is happening here is that sapply is calling print on each element of fileList[order(fileList)] printing the contents to screen. Then Rstudio prints the result of the sapply function itself, which is a list of the contents printed by print. You can use cat to print values without the [1] or wrap sapply in invisible to suppress its output. https://stackoverflow.com/a/12985020/6490232

Mosquite
  • 588
  • 1
  • 4
  • 15