我有以下2个data.frames:
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
Run Code Online (Sandbox Code Playgroud)
我想找到a1没有的行a1.
这种类型的操作是否有内置功能?
(ps:我确实为它编写了一个解决方案,如果有人已经制作了更加精心设计的代码,我感到很好奇)
这是我的解决方案:
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
rows.in.a1.that.are.not.in.a2 <- function(a1,a2)
{
a1.vec <- apply(a1, 1, paste, collapse = "")
a2.vec <- apply(a2, 1, paste, collapse = "")
a1.without.a2.rows <- a1[!a1.vec %in% a2.vec,]
return(a1.without.a2.rows)
}
rows.in.a1.that.are.not.in.a2(a1,a2)
Run Code Online (Sandbox Code Playgroud) 我刚读完R简介中的范围界定,对这项<<-
任务非常好奇.
手册显示了一个(非常有趣)的例子<<-
,我觉得我理解.我仍然缺少的是这可能有用的背景.
因此,我希望从您那里读到的是关于何时使用<<-
可能有趣/有用的示例(或示例链接).使用它的危险可能是什么(它看起来容易松散),以及您可能想要分享的任何提示.
我找到了这个旧线程(来自一年多以前),它解释了R如何不支持多行注释(例如PHP的/*comment*/).
我想知道过去一年是否已经解决了这个问题,还是有其他选择?(例如,在带有npptor的notepad ++中,你可以标记一堆行并按ctrl + q将它们全部标记为注释,是否有其他IDE的类似解决方案?)
我,使用R 2.13.0与Windows 7,给我的用户完全权限到R后的文件夹(如描述在这里).这允许我很好地安装新包.
但是,当使用update.packages()来更新现有的包时,我不断收到以下错误(例如,更新MASS包时):
包'MASS'成功解包并检查MD5总和
警告:无法将临时安装 'C:\ Program Files\R\R-2.13.0\library\file6cae3bcf\MASS'移动到'C:\ Program Files\R\R-2.13.0\library\MASS'
对于如何解决这个问题,有任何的建议吗?
ps:以管理员身份运行R或将库位置移出Program Files不是一个解决方案(这是一个黑客 - 但我正在寻找解决方案)
我想在我写的文章中提出一个距离矩阵,我正在为它寻找良好的可视化.
到目前为止,我遇到了气球图(我在这里使用它,但我不认为它会在这种情况下起作用),热图(这是一个很好的例子,但它们不允许在表中显示数字,正确我,如果我错了.也许一半的颜色和一半的数字将是很酷的)和最后的相关椭圆图(这里是一些代码和示例 - 使用一个形状很酷,但我不知道如何使用它这里).
还有各种聚类方法,但它们会聚合数据(这不是我想要的),而我想要的是呈现所有数据.
示例数据:
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv")
dist(nba[1:20, -1], )
Run Code Online (Sandbox Code Playgroud)
我很开心.
假设我们有以下功能:
foo <- function(x)
{
line1 <- x
line2 <- 0
line3 <- line1 + line2
return(line3)
}
Run Code Online (Sandbox Code Playgroud)
我们想要改变第二行:
line2 <- 2
Run Code Online (Sandbox Code Playgroud)
你会怎么做?
一种方法是使用
fix(foo)
Run Code Online (Sandbox Code Playgroud)
并改变功能.
另一种方法是再次编写该函数.
还有另外一种方法吗?(记住,任务是改变第二行)
我想要的是某种方式将函数表示为字符串向量(好吧,字符),然后更改其中一个值,然后再将其转换为函数.
在什么情况下,您在分析中创建对比?它是如何完成的以及它用于什么?
我检查?contrasts
和?C
-都会导致,这是不容易得到的我"中的统计模型的第2章".