2

我有两个关于 R 的问题。很简单,但不幸的是我在网上找不到任何东西。

  1. 是否可以在 R 中编写一个函数,fun1<-function(place)使得参数“place”是我想在我的情况下导入的文件名,即

    fun1 <- function(place)
    data <- read.table(/home/place.csv, header=TRUE, sep=",")
    
  2. 假设变量c被分配给一个数字,例如一个人的年龄。然后我想打印出这样的字符串:"hello my age is c". 你如何在 R 中做到这一点?

4

2 回答 2

7
  1. 您可以在第一部分使用sprintf,paste0等。

    fun1 <- function(place) read.table(sprintf('/home/%s.csv', place), 
                                       header=TRUE, sep=",")
    
    fun2 <- function(place) read.table(paste0('/home/', place, '.csv'), 
                                       header=TRUE, sep=",") 
    # paste0 only works in recent versions of R
    
    fun3 <- function(place) read.table(paste('/home/', place, '.csv', sep=''),
                                       header=TRUE, sep=",")
    
    # Now call the functions
    fun1('test.csv')
    fun2('test.csv')
    fun3('test.csv')
    
  2. sapply不需要,因为paste是矢量化的。

    ages <- 10:20
    paste('Hello my name is', ages)
    
于 2012-04-24T19:29:50.010 回答
2

我不确定您在问题的第一部分要达到什么目的。你能进一步解释一下吗?

对于第二部分,这样的事情怎么样:

> ages = c(40, 23, 13, 42, 53)
> sapply(ages, function(x) paste("Hello, my age is", x))
[1] "Hello, my age is 40" "Hello, my age is 23" "Hello, my age is 13" "Hello, my age is 42"
[5] "Hello, my age is 53"
于 2012-04-24T19:04:42.977 回答