第一天使用R,很抱歉,如果这个问题很明显。
我正在尝试使用因子变量和数值变量进行回归。
Diet
是一个因子变量,从1-10开始。我制作了一个新的因子变量Diet.Factor
。Source
是另一个可以是A或B的因子变量。Weight
时基于Diet.Factor
为Source==A
运行线性回归。现在,
lm(Weight~Diet.Factor,data=labdata)
工作正常,但
lm(Weight~Diet.Factor,data=subset(labdata,Source=="A"))
给出
Error in model.frame.default(formula = Weight ~ Diet.Factor,
:variable lengths differ (found for 'Diet.Factor')
答案 0 :(得分:0)
我猜你的数据框// that's what you ended up with after `groupByKey.mapValues`
val rddReduced: RDD[(Int, List[Int])] = ...
val r = for {
(k, values) <- rddReduced
v <- values
} yield (k, v)
scala> :type r
org.apache.spark.rdd.RDD[(Int, Int)]
scala> r.foreach(println)
(3,10)
(2,5)
(2,7)
(1,2)
(1,3)
// even nicer to our eyes
scala> r.toDF("key", "value").show
+---+-----+
|key|value|
+---+-----+
| 1| 2|
| 1| 3|
| 2| 5|
| 2| 7|
| 3| 10|
+---+-----+
中没有Diet.Factor
列,但是在全局环境中有这个列,因此它不受子集限制。这是唯一可能的原因。