我已经和R一起工作了大约2个月,并且在确定$
和%%
条款方面遇到了一些麻烦。
我知道我可以使用$
术语从函数中提取某个值(例如t.test(x)$p.value
),但我不确定这是否是通用定义。我也知道可以用它来指定拉取某些数据。
我也对使用%%
术语感到好奇,特别是如果我在它之间放置一个值(例如%x%)我知道将它用作调制器或其余的例如7 %% 5
返回2
。也许我是无知的,这不是真的吗?
非常感谢任何文学方面的帮助或链接。
注意:我一直在搜索这几个小时,如果我找不到它,请原谅!
答案 0 :(得分:7)
您实际上并不是从函数中提取值,而是从函数返回的列表对象中提取值。
t.test # is the function
t.test(x) # is a named list with one of the names being "p.value"
可以通过以下三种方式之一来提取价值:
t.test(x)$p.value
t.test[['p.value']] # numeric vector
t.test['p.value'] # a list with one item
my.name.for.p.val <- 'p.value'
t.test(x)[[ my.name.for.p.val ]]
当你围绕一组带有侧翼“%”的字符时 - 你可以创建自己的矢量化中缀函数。如果你想要一个pmax
,其中defautl是na.rm = TRUE,那就这样做:
'%mypmax%' <- function(x,y) pmax(x,y, na.rm=TRUE)
然后在没有引号的情况下使用它:
> c(1:10, NA) %mypmax% c(NA,10:1)
[1] 1 10 9 8 7 6 7 8 9 10 1
答案 1 :(得分:1)
首先,$
运算符用于选择列表的元素。请参阅help('$')
。
%%
运算符是模运算符。请参阅help('%%')
。