我想知道是否有人可以帮我在函数中使用变量名.我已经整理了一个点图,它对变量进行排序然后生成一个位图,但是我无法R将变量名称传递给plot标题.
示例数据
id<-c(1,2,3)
blood<-c(1,2,10)
weight<-c(1,2,13)
mydata<-as.data.frame(cbind(id,blood,weight))
mydata$blood
#######SORTED DOT PLOT####
Dplotter<-function (id,x,Title=""){
if (is.null(Title)) {Title=""} else {Title=Title}
DIR<-paste("C:/temp/WholePlots/New/",Title,".bmp",sep="")
D<-as.data.frame(cbind(id,x))
x1<-as.data.frame(D[order(x),])
bmp(DIR)
dotchart(x1$x,labels=id,main=Title,pch=16)
dev.off()
}
###############
Dplotter(mydata$id,mydata$blood,"Blood")
Dplotter(mydata$id,mydata$weight,"Weight")
Run Code Online (Sandbox Code Playgroud)
在函数的第二行,我想传递变量名称,例如
`if (is.null(Title)) {Title=varname(x)} else {Title=Title}`
Run Code Online (Sandbox Code Playgroud)
这样我就不必在函数Title字段中输入"Blood"(例如Dplotter(mydata $ id,mydata $ blood)
基本上,如何在函数中粘贴变量名?如果可以从标题中取出数据集名称(没有附加数据集,我被告知这是不好的做法)会更好,这样mydata$blood你就可以获得标题中的"鲜血".
我没能找到一个简单的解决方案来粘贴函数中的变量名.您可以猜测,将变量名称放在
paste()函数中会返回变量的值(以便绘图标题用值而不是变量名称填充).
我还希望进一步自动化该功能,这样我就可以放置数据集和ID,然后为数据集中的每个变量重复该功能.显然,这需要首先解决问题1,否则标题和文件名都会遇到问题.
我有一个对象,以及一个包含我想发送给它的消息的字符串.
例如,字符串'+ 5',我想发送给某个整数对象.
如果它在工作区中,那么我只会写"obj + 5",但我需要在运行时完成,而不事先知道字符串...
我在数据框中有一个具有浮点值的列(所以我将此列称为Float系列).我想将所有值转换为整数或只是将其四舍五入,以便没有小数.
我们说数据帧是df,列是a,我试过这个:
df['a'] = round(df['a'])
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,说这个方法不能应用于系列,只适用于单个值.
接下来我尝试了这个:
for obj in df['a']:
obj =int(round(obj))
Run Code Online (Sandbox Code Playgroud)
在此之后我打印了df,但没有变化.我哪里错了?
鉴于以下定义
layerData = [3, 3, 2, 1, 1]
bias = [0.47, -0.45, 0.31, -0.09, 0.21 ,-0.18, 0.14, -0.45, -0.39, -0.14]
Run Code Online (Sandbox Code Playgroud)
从bias列表的头部开始,对于我中的每个元素N,layerData我想从中取出下一个N元素bias并将该列表附加到结果中
这是它应该输出的内容:
[[0.47, -0.45, 0.31], [-0.09, 0.21, -0.18], [0.14, -0.45], [-0.39], [-0.14]]
Run Code Online (Sandbox Code Playgroud)