欢迎光临
我们一直在努力

swirl Lesson 2: Workspace and Files

| Please choose a lesson, or type 0 to return to course menu.
 1: Basic Building Blocks      2: Workspace and Files     
 3: Sequences of Numbers       4: Vectors                 
 5: Missing Values             6: Subsetting Vectors      
 7: Matrices and Data Frames   8: Logic                   
 9: Functions                 10: lapply and sapply       
11: vapply and tapply         12: Looking at Data         
13: Simulation                14: Dates and Times         
15: Base Graphics             
Selection: 2
  |                                                          |   0%
| In this lesson, you'll learn how to examine your local workspace
| in R and begin to explore the relationship between your workspace
| and the file system of your machine.
...
  |=                                                         |   2%
| Because different operating systems have different conventions
| with regards to things like file paths, the outputs of these
| commands may vary across machines.
...
  |===                                                       |   5%
| However it's important to note that R provides a common API (a
| common set of commands) for interacting with files, that way your
| code will work across different kinds of computers.
...
  |====                                                      |   7%
| Let's jump right in so you can get a feel for how these special
| functions work!
...
  |======                                                    |  10%
| Determine which directory your R session is using as its current
| working directory using getwd().
> getwd()
[1] "C:/Users/Clanzd/Documents"
| You got it!
  |=======                                                   |  12%
| List all the objects in your local workspace using ls().
> ls()
 [1] "beer"        "beer.counts" "data"        "my_char"    
 [5] "my_data"     "my_div"      "my_na"       "my_name"    
 [9] "my_seq"      "my_sqrt"     "num_vect"    "old.dir"    
[13] "sals"        "scores"      "tf"          "x"          
[17] "y"           "z"          
| You got it!
  |========                                                  |  14%
| Some R commands are the same as their equivalents commands on
| Linux or on a Mac. Both Linux and Mac operating systems are based
| on an operating system called Unix. It's always a good idea to
| learn more about Unix!
...
  |==========                                                |  17%
| Assign 9 to x using x <- 9.
> x<-9
| That's a job well done!
  |===========                                               |  19%
| Now take a look at objects that are in your workspace using ls().
> ls()
 [1] "beer"        "beer.counts" "data"        "my_char"    
 [5] "my_data"     "my_div"      "my_na"       "my_name"    
 [9] "my_seq"      "my_sqrt"     "num_vect"    "old.dir"    
[13] "sals"        "scores"      "tf"          "x"          
[17] "y"           "z"          
| Excellent work!
  |============                                              |  21%
| List all the files in your working directory using list.files()
| or dir().
> list.files()
 [1] "Adobe"                             
 [2] "Custom Office Templates"           
 [3] "desktop.ini"                       
 [4] "EasyBCD_Backup (2016-03-28).bcd"   
 [5] "eTicket Itinerary and Receipt.oxps"
 [6] "GitHub"                            
 [7] "My Cheat Tables"                   
 [8] "My Games"                          
 [9] "My IML Studio Files"               
[10] "My Music"                          
[11] "My Pictures"                       
[12] "My Videos"                         
[13] "R"                                 
[14] "Tencent Files"                     
[15] "WeChat Files"                      
| All that hard work is paying off!
  |==============                                            |  24%
| As we go through this lesson, you should be examining the help
| page for each new function. Check out the help page for
| list.files with the command ?list.files.
> ?list.files
| You nailed it! Good job!
  |===============                                           |  26%
| One of the most helpful parts of any R help file is the See Also
| section. Read that section for list.files. Some of these
| functions may be used in later portions of this lesson.
...
  |=================                                         |  29%
| Using the args() function on a function name is also a handy way
| to see what arguments a function can take.
...
  |==================                                        |  31%
| Use the args() function to determine the arguments to
| list.files().
> args(list.files)
function (path = ".", pattern = NULL, all.files = FALSE, full.names = FALSE, 
    recursive = FALSE, ignore.case = FALSE, include.dirs = FALSE, 
    no.. = FALSE) 
NULL
| You got it!
  |===================                                       |  33%
| Assign the value of the current working directory to a variable
| called "old.dir".
> old.dir<-getwd()
| You got it right!
  |=====================                                     |  36%
| We will use old.dir at the end of this lesson to move back to the
| place that we started. A lot of query functions like getwd() have
| the useful property that they return the answer to the question
| as a result of the function.
...
  |======================                                    |  38%
| Use dir.create() to create a directory in the current working
| directory called "testdir".
> dir.create("testdir")
| You nailed it! Good job!
  |=======================                                   |  40%
| We will do all our work in this new directory and then delete it
| after we are done. This is the R analog to "Take only pictures,
| leave only footprints."
...
  |=========================                                 |  43%
| Set your working directory to "testdir" with the setwd() command.
> setwd("testdir")
| You nailed it! Good job!
  |==========================                                |  45%
| In general, you will want your working directory to be someplace
| sensible, perhaps created for the specific project that you are
| working on. In fact, organizing your work in R packages using
| RStudio is an excellent option. Check out RStudio at
| http://www.rstudio.com/
...
  |============================                              |  48%
| Create a file in your working directory called "mytest.R" using
| the file.create() function.
> file.create("mytest.R")
[1] TRUE
| You are really on a roll!
  |=============================                             |  50%
| This should be the only file in this newly created directory.
| Let's check this by listing all the files in the current
| directory.
> list.files()
[1] "mytest.R"
| Great job!
  |==============================                            |  52%
| Check to see if "mytest.R" exists in the working directory using
| the file.exists() function.
> file.exists("mytest.R")
[1] TRUE
| Keep working like that and you'll get there!
  |================================                          |  55%
| These sorts of functions are excessive for interactive use. But,
| if you are running a program that loops through a series of files
| and does some processing on each one, you will want to check to
| see that each exists before you try to process it.
...
  |=================================                         |  57%
| Access information about the file "mytest.R" by using
| file.info().
> file.info("mytest.R")
         size isdir mode               mtime               ctime
mytest.R    0 FALSE  666 2016-07-14 16:20:08 2016-07-14 16:20:08
                       atime exe
mytest.R 2016-07-14 16:20:08  no
| Great job!
  |===================================                       |  60%
| You can use the $ operator --- e.g., file.info("mytest.R")$mode
| --- to grab specific items.
...
  |====================================                      |  62%
| Change the name of the file "mytest.R" to "mytest2.R" by using
| file.rename().
> file.rename("mytest.R","mytest2.R")
[1] TRUE
| You are amazing!
  |=====================================                     |  64%
| Your operating system will provide simpler tools for these sorts
| of tasks, but having the ability to manipulate files
| programatically is useful. You might now try to delete mytest.R
| using file.remove('mytest.R'), but that won't work since mytest.R
| no longer exists. You have already renamed it.
... 
  |=======================================                   |  67%
| Make a copy of "mytest2.R" called "mytest3.R" using file.copy().
> file.copy("mytest2.R","mytest3.R")
[1] TRUE
| Excellent job!
  |========================================                  |  69%
| You now have two files in the current directory. That may not
| seem very interesting. But what if you were working with dozens,
| or millions, of individual files? In that case, being able to
| programatically act on many files would be absolutely necessary.
| Don't forget that you can, temporarily, leave the lesson by
| typing play() and then return by typing nxt().
...
  |=========================================                 |  71%
| Provide the relative path to the file "mytest3.R" by using
| file.path().
> file.path("mytest3.R")
[1] "mytest3.R"
| Great job!
  |===========================================               |  74%
| You can use file.path to construct file and directory paths that
| are independent of the operating system your R code is running
| on. Pass 'folder1' and 'folder2' as arguments to file.path to
| make a platform-independent pathname.
> file.path('folder1','folder2')
[1] "folder1/folder2"
| Keep working like that and you'll get there!
  |============================================              |  76%
| Take a look at the documentation for dir.create by entering
| ?dir.create . Notice the 'recursive' argument. In order to create
| nested directories, 'recursive' must be set to TRUE.
> ?dir.create
| You're the best!
  |==============================================            |  79%
| Create a directory in the current working directory called
| "testdir2" and a subdirectory for it called "testdir3", all in
| one command by using dir.create() and file.path().
> dir.create(file.path('testdir2','testdir3'), recursive = TRUE)
| Excellent work!
  |===============================================           |  81%
| To delete a directory you need to use the recursive = TRUE
| argument with the function unlink(). If you don't use recursive =
| TRUE, R is concerned that you're unaware that you're deleting a
| directory and all of its contents. R reasons that, if you don't
| specify that recursive equals TRUE, you don't know that something
| is in the directory you're trying to delete. R tries to prevent
| you from making a mistake.
...
  |================================================          |  83%
| Delete the "testdir2" directory that you created by using
| unlink().
> unlink("testdir2", recursive =TRUE)
| That's correct!
  |==================================================        |  86%
| Why is this command named "unlink" rather than something more
| sensible like "dir.delete" or "dir.remove"? Mainly, history.
| unlink is the traditional Unix command for removing directories.
...
  |===================================================       |  88%
| Go back to your original working directory using setwd(). (Recall
| that we created the variable old.dir with the full path for the
| orginal working directory at the start of these questions.)
> setwd(old.dir)
| Nice work!
  |====================================================      |  90%
| It is often helpful to save the settings that you had before you
| began an analysis and then go back to them at the end. This trick
| is often used within functions; you save, say, the par() settings
| that you started with, mess around a bunch, and then set them
| back to the original values at the end. This isn't the same as
| what we have done here, but it seems similar enough to mention.
...
  |======================================================    |  93%
| Delete the 'testdir' directory that you just left (and everything
| in it)
> unlink('testdir',recursive =TRUE)
| You are quite good my friend!
  |=======================================================   |  95%
| Take nothing but results. Leave nothing but assumptions. That
| sounds like 'Take nothing but pictures. Leave nothing but
| footprints.' But it makes no sense! Surely our readers can come
| up with a better motto . . .
...
  |========================================================= |  98%
| In this lesson, you learned how to examine your R workspace and
| work with the file system of your machine from within R. Thanks
| for playing!
...
  |==========================================================| 100%

You may also like

转载请注明:满忘近 » swirl Lesson 2: Workspace and Files

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址