组织数据框以对齐r中的行

时间:2018-07-18 10:58:18

标签: r sorting alignment row reorganize

我需要整理一个非常凌乱且庞大的数据框。我使用R已有很长时间了,因此我们将不胜感激。

作为示例,我的数据框如下所示:

x1 = c("a", "c", "b") 
x2 = c("b", "a", "") 
x3 = c("b", "c", "a") 
df = data.frame(x1, x2, x3)

并且需要重新组织以使行对齐,如下所示:

x1 = c("a", "b", "c") 
x2 = c("a", "b", "") 
x3 = c("a", "b", "c") 
df = data.frame(x1, x2, x3)

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

请注意,x1,x2和x3实际上是列。您的原始data.frame如下所示:

  x1 x2 x3
1  a  b  b
2  c  a  c
3  b     a

您是否将行与列混淆? x1 = c(“ a”,“ c”,“ b”)-将x1视为列标题或特征,而“ a”,“ c”和“ b”是该列的元素。这可能会造成混淆,因为您是逐行逐行键入的。

答案 1 :(得分:0)

 var data =  [{"response_data": {
    '0':{id : 0, "office" : "India", "type" : 'Perm'},
    '1':{id : 0, "office" : "America","type" : 'Perm'},
    '2':{ id : 0, "office" : "Europe","type" : 'Contract'},
    '3':{ id : 0, "office" : "Latin America", "type" : 'Contract'}
    }}];

 var list = data[0]['response_data'];
    var filterList = [];
    for(var i in list) {
        if(list.hasOwnProperty(i)) {
            var type = list[i]['type'];
            if(type === 'Contract') {
                filterList.push(list[i]);
            }
        }
    }

答案 2 :(得分:0)

尝试:

x1 = c("a", "c", "b") 
x2 = c("b", "a", "") 
x3 = c("b", "c", "a") 
df = data.frame(x1, x2, x3)
data.frame(lapply(df, function(x) {
  res <- as.character(x)
  res[res == ""] <- NA
  res <- sort(res, na.last = TRUE)
  res[is.na(res)] <- ""
  res <- as.factor(res)
  res
}))