【发布时间】:2017-06-16 01:34:57
【问题描述】:
我是 R 的新手(和一般的编码),所以如果这是一个愚蠢的问题,我很抱歉,我怀疑这是一个简单的解决方法,我只是不明白如何正确地制作一个函数,但我们会看到。
我想向数据框中添加一个新列,其中包含一个字符串,该字符串取决于现有列中包含的值。例如,对于 iris 数据,如果一行在 Petal.Width 列中包含“0.2”的值,我想在新列中粘贴一个类似“Response String 1”的字符串。如果 Petal.Width 中的值 = 0.4,则在同一列中粘贴“响应字符串 2”。
我试图在 here 和 here 的帮助下解决这个问题,但未能成功。
到目前为止,我有这样的事情:
MyFunction <- function(petalWidth){
if (petalWidth == 0.2){
iris$NewColumn <- paste("Response String 1")
}
}
apply(iris, 1, MyFunction(iris$Petal.Width))
出现此错误:
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'Response String 1' of mode 'function' was not found
In addition: Warning message:
In if (petalWidth == 0.2) { :
the condition has length > 1 and only the first element will be used
我尝试了其他一些方法,包括查看for 声明。我不太确定如何构建这个函数才能正常工作。任何想法都将不胜感激,我希望我已经提供了足够的信息以使其可重现。谢谢!
【问题讨论】:
标签: r