可能重复:
将data.frame列名称传递给函数
我正在尝试在R中创建一个函数,其中输入之间有数据框和列名.代码将是这样的:
DT_CAP_COLUMN <- function(input_table,output_table,column_name,
cap_function,Parameter){
input_table$column_name
(...)
return(1)
}
Run Code Online (Sandbox Code Playgroud)
输出:
DT_CAP_COLUMN(churn_3,churn_4,'VOICE_REVENUE','STD',3)
input_table$column_name is NA
Run Code Online (Sandbox Code Playgroud)
我认为问题是input_table$column_name不被承认.input_table是churn_3,但input_table$column_name回报率column_name not found.
无论如何要做到这一点,而不必使用pass-by-references包或将环境作为变量传递?
我一直试图在回归树(或随机森林回归器)中使用分类的inpust,但sklearn不断返回错误并要求输入数字.
import sklearn as sk
MODEL = sk.ensemble.RandomForestRegressor(n_estimators=100)
MODEL.fit([('a',1,2),('b',2,3),('a',3,2),('b',1,3)], [1,2.5,3,4]) # does not work
MODEL.fit([(1,1,2),(2,2,3),(1,3,2),(2,1,3)], [1,2.5,3,4]) #works
MODEL = sk.tree.DecisionTreeRegressor()
MODEL.fit([('a',1,2),('b',2,3),('a',3,2),('b',1,3)], [1,2.5,3,4]) # does not work
MODEL.fit([(1,1,2),(2,2,3),(1,3,2),(2,1,3)], [1,2.5,3,4]) #works
Run Code Online (Sandbox Code Playgroud)
根据我的理解,这些方法中的分类输入应该是可能的,没有任何转换(例如WOE替代).
有没有其他人有这个困难?
谢谢!
我试图将字符列转换为数字,我尝试使用:
var=input(var,Best12.);var=var*1;它们都返回了字符列,并且只有一条警告消息:
"Character values have been converted to numeric values at the places given by: (Line):(Column). 7132:4".
Run Code Online (Sandbox Code Playgroud)
还有另外一个在SAS内部进行这种转换的方法吗?
(如果这是微不足道,我道歉)
谢谢!