diff --git a/admin/export_data_r.php b/admin/export_data_r.php index 8c060248bdb..e8e21ff10b8 100644 --- a/admin/export_data_r.php +++ b/admin/export_data_r.php @@ -66,7 +66,7 @@ 'R'=>Array('name'=>'Ranking','size'=>1,'SPSStype'=>'F'), 'S'=>Array('name'=>'Short free text','size'=>1,'SPSStype'=>'F'), 'Y'=>Array('name'=>'Yes/No','size'=>1,'SPSStype'=>'F'), -':'=>Array('name'=>'Multi flexi numbers','size'=>1,'SPSStype'=>'F','Scale'=>3), +':'=>Array('name'=>'Multi flexi numbers','size'=>1,'SPSStype'=>'F'), ';'=>Array('name'=>'Multi flexi text','size'=>1,'SPSStype'=>'A'), '*'=>Array('name'=>'Equation','size'=>1,'SPSStype'=>'A'), ); @@ -195,25 +195,25 @@ $i = 1; foreach ($fields as $field) { - if($field['SPSStype'] == 'DATETIME23.2') $field['size']=''; + if($field['SPSStype'] == 'DATETIME23.2') $field['size']=''; if($field['LStype'] == 'N' || $field['LStype']=='K') { - $field['size'].='.'.($field['size']-1); - } + $field['size'].='.'.($field['size']-1); + } switch ($field['SPSStype']) { - case 'F': - $type="numeric"; - break; - case 'A': - $type="character"; - break; - case 'DATETIME23.2': - case 'SDATE': - $type="character"; - //@TODO set $type to format for date - break; - } + case 'F': + $type="numeric"; + break; + case 'A': + $type="character"; + break; + case 'DATETIME23.2': + case 'SDATE': + $type="character"; + //@TODO set $type to format for date + break; + } if (!$field['hide']) { @@ -225,7 +225,7 @@ htmlspecialchars_decode( mb_substr( strip_tags_full( - $field['VariableLabel']),0,$length_varlabel))) // added htmlspecialchars_decode + $field['VariableLabel']),0,$length_varlabel))) . '"' . "\n"; // Create the value Labels! @@ -233,30 +233,32 @@ { $answers = $field['answers']; //print out the value labels! - // data$V14=factor(data$V14,levels=c(1,2,3),labels=c("Yes","No","Uncertain")) - echo 'data[, ' . $i .'] <- factor(data[, ' . $i . '], levels=c('; - $str=""; - foreach ($answers as $answer) { - if ($field['SPSStype']=="F" && my_is_numeric($answer['code'])) { - $str .= ",{$answer['code']}"; - } else { - $str .= ",\"{$answer['code']}\""; + if($field['LStype'] != ':') // Exclude array (numeric) type questions. There must be a better way of doing this, but I can't find it. (AdV) + { + echo 'data[, ' . $i .'] <- factor(data[, ' . $i . '], levels=c('; + $str=""; + foreach ($answers as $answer) { + if ($field['SPSStype']=="F" && my_is_numeric($answer['code'])) { + $str .= ",{$answer['code']}"; + } else { + $str .= ",\"{$answer['code']}\""; + } } - } - $str = mb_substr($str,1); - echo $str . '),labels=c('; - $str=""; - foreach ($answers as $answer) { - $str .= ",\"{$answer['value']}\""; - } - $str = mb_substr($str,1); + $str = mb_substr($str,1); + echo $str . '),labels=c('; + $str=""; + foreach ($answers as $answer) { + $str .= ",\"{$answer['value']}\""; + } + $str = mb_substr($str,1); if($field['scale']!=='' && $field['scale'] == 2 ) { - $scale = ",ordered=TRUE"; - } else { - $scale = ""; + $scale = ",ordered=TRUE"; + } else { + $scale = ""; + } + echo "$str)$scale)\n"; } - echo "$str)$scale)\n"; - } + } //Rename the Variables (in case somethings goes wrong, we still have the OLD values if (isset($field['sql_name']))