是否可以在函数调用中仅传递变量名并在函数中使用它?
\n\n伪代码:
\n\nq<-function(A){\n b<-(w%in%A.2|w%in%A.7) \n factor(b,levels=c(F,T),labels=c("non-"A,A))}\n\n\nw<-c(0:10)\ne.2<-c(1,2)\ne.7<-c(6,7)\nRun Code Online (Sandbox Code Playgroud)\n\n我\xc2\xb4d 喜欢做的是
\n\nq(e)\nRun Code Online (Sandbox Code Playgroud)\n\n并已返回
\n\n非 e,e,e,非 e,非 e,e,e,非 e,非 e
\n\n//M
\n\nq<-function(A) {\n a2<-get(paste(a,".2",sep=""))\n a7<-get(paste(a,".7",sep=""))\n b<-(w%in%a2|%in%a7) \n factor(b,levels=c(F,T),labels=c(paste("non-",a,sep=""),a)) \n}\n\nq("e")\nRun Code Online (Sandbox Code Playgroud)\n\n谢谢,
\n\n中号
\n我在SAS和R中运行了相同的概率回归,而我的系数估计值(基本上)是等效的,报告的测试统计数据是不同的.具体而言,SAS将测试统计报告为t统计,而R将测试统计报告为z统计.
我检查了我的计量经济学文本,发现(很少详细说明)它以t统计数据报告了probit结果.
哪个统计数据合适?为什么R与SAS不同?
这是我的SAS代码:
proc qlim data=DavesData;
model y = x1 x2 x3/ discrete(d=probit);
run;
quit;
Run Code Online (Sandbox Code Playgroud)
这是我的R代码:
> model.1 <- glm(y ~ x1 + x2 + x3, family=binomial(link="probit"))
> summary(model.1)
Run Code Online (Sandbox Code Playgroud) 如果我有一个包含随机性的操作(让我们调用它operation_with_randomness(number)),我希望它运行x次
> b <- rep(operation_with_randomness(number), x)
Run Code Online (Sandbox Code Playgroud)
我明白了
> b
1.5472491 1.5472491 1.5472491 1.5472491 1.5472491 1.5472491 ...
Run Code Online (Sandbox Code Playgroud)
是否有任何智能方法(例如,不是循环结构)operation_with_randomness(number)每次运行以获得一个b向量,其中包含来自x个单独运行的值?
R问题:如何堆叠两列或更多列数字并保留一个因子
我data.frame喜欢这样的:
patient analyte1value analyte2value analyte3value
pt1 1 3 5
pt2 2 6 7
pt3 9 10 2
...
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用stack(select=c(columnnames)),但我失去了耐心因素.
我想出去:
pt1 1 analyte1
pt1 3 analyte2
pt1 5 analyte3
pt2 2 analyte1
pt2 6 analyte2
...
Run Code Online (Sandbox Code Playgroud)
(我有一种潜在的怀疑,我需要plyr或类似的......)
谢谢.
我试图模拟死亡超过7年的累积概率如下:
tab <- data.frame(id=1:1000,char=rnorm(1000,7,4))
cum.prob <- c(0.05,0.07,0.08,0.09,0.1,0.11,0.12)
Run Code Online (Sandbox Code Playgroud)
如何tab$id根据累积概率以矢量化方式从无需替换的样本中进行采样cum.prob?从年1开始采样的ids不一定能在2年内再次采样.因此,lapply(cum.prob,function(x) sample(tab$id,x*1000))它不起作用.有可能对此进行矢量化吗?
//中号
这是一个例子:
eg <- data.frame(x = c(1:50, 50:1),
y = c(1:50, 1:50) + rnorm(100),
g = rep(c("a","b"), each=50))
qplot(x, y, data = eg) +
facet_wrap(~ g) +
geom_smooth()
Run Code Online (Sandbox Code Playgroud)
我希望能够在两个方面绘制整体平滑度以及具有小平面特定的平滑度.
编辑:这是一种方式.
my.smooth <- gam(y ~ s(x), data = eg)
my.data <- data.frame(x = 1:50)
my.data$y <- predict(my.smooth, newdata = my.data)
qplot(x, y, data = eg) +
facet_wrap(~ g) +
geom_smooth() +
geom_smooth(data = my.data)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
安德鲁
我试图从list.files返回一个文件名,但有2个类似命名的文件.
filename.csv
filename_review.csv
我想将每个文件名放入自己的列表中.这样做filename_review.csv很容易,因为它有独特的东西,但我如何筛选出另一个呢?我需要grep(".csv", list.files())不filename_review.csv返回.
我想传递一个带矩阵的R txt文件,其中从行中省略拖尾零(除了第一个拖尾零,如果有的话).那些缺失的值被视为零.
例如:
8 7 0
5 4 3 2 1
4 8 9
Run Code Online (Sandbox Code Playgroud)
应该理解为:
8 7 0 0 0
5 4 3 2 1
4 8 9 0 0
Run Code Online (Sandbox Code Playgroud)
在读取矩阵之前,最大行大小(即矩阵列的数量)是未知的.
我的重新编码尝试
df$test[(df$1st==(1:3) & df$2nd <= 4)] <- 1
df$test[(df$1st==(1:3) & df$2nd <= 5)] <- 2
df$test[(df$1st==(1:3) & df$2nd <= 6)] <- 3
Run Code Online (Sandbox Code Playgroud)
导致"longer object length is not a multiple of shorter object length"警告和大量的NA以s df$test,即使一些重新编码正常工作.
我错过了什么?任何帮助赞赏.
DW
我正在使用pgfsweave与Lyx 1.6.8和xtable.提供表格标题
<<result=tex>>=
print(xtable(<dataframe>,caption="Here is my caption"))
@.
Run Code Online (Sandbox Code Playgroud)
如何在表格标题中插入标签,我可以在lyx>插入>交叉引用菜单的文本中进行交叉引用?
我试图插入>浮>表和插入
print(xtable(<dataframe>,floating=FALSE))并
"Here is my caption"在表标题内框架但是这导致(字面意思):
[?oat Table:
<...Table ...>
[Table 2: "Here is my caption" ] ]
Run Code Online (Sandbox Code Playgroud)
甚至是赤脚的交叉引用解决方法
<<result=tex>>=
print(xtable(<dataframe>,caption="Here is my caption",label = "tab:one"))
@
Run Code Online (Sandbox Code Playgroud)
来自ERT-box会有所帮助.