在R中的文本文件中组合第一行和第二行

时间:2017-09-21 02:45:54

标签: r dplyr tidyr tidyverse readr

我有一个凌乱的数据集,其中有2行信息属于1.我想取第二行并将其拍到第一行的末尾,并在此过程中创建新列。

JTable table;
......
Object dce = table.getDefaultEditor(Object.class);
if(dce instanceof DefaultCellEditor) {
    ((DefaultCellEditor) dce).getComponent().setFont([your font]);
}

Hadleyverse有什么简单的东西吗?

4 个答案:

答案 0 :(得分:1)

我会使用来自tidyr的unite()separate()以及来自dplyr的lead()来执行此操作。

library(dplyr)
library(tidyr)

df <- tribble(
~COL1,      ~COL2,
"name1",    "score1",
"state1",   "rating1",
"name2",    "score2",
"state2",   "rating2"
)


df %>% 
  unite(old_cols, COL1, COL2) %>%
  mutate(new_cols = lead(old_cols)) %>%
  filter(row_number() %% 2 == 1) %>%
  separate(old_cols, into = c("COL1", "COL2")) %>%
  separate(new_cols, into = c("COL3", "COL4"))

#> # A tibble: 2 x 4
#>    COL1   COL2   COL3    COL4
#> * <chr>  <chr>  <chr>   <chr>
#> 1 name1 score1 state1 rating1
#> 2 name2 score2 state2 rating2

答案 1 :(得分:1)

使用base R,我们可以使用逻辑向量的回收将行子集化为list然后cbind

setNames(do.call(cbind, list(df[c(TRUE, FALSE),], 
      df[c(FALSE, TRUE),])), paste0("COL", 1:4))
#   COL1   COL2   COL3    COL4
#1 name1 score1 state1 rating1
#3 name2 score2 state2 rating2

答案 2 :(得分:1)

您应该将数据框分成两个数据框:一个包含偶数行,另一个包含奇数行。 警告:如果有奇数行,则最后一行将在新添加的列中包含NA

奇数行:df[seq(1, nrow(df), 2), ]

偶数行:df[seq(2, nrow(df), 2), ]

下一步是cbind他们:

df_new = cbind(df[seq(1, nrow(df), 2), ], df[seq(2, nrow(df), 2), ])

最后一步应该是重命名列:

colnames(df_new) = c("COL1", "COL2", "COL3", "COL4")

答案 3 :(得分:0)

这是一个ExpandableLinearLayout expandableLayout = (ExpandableLinearLayout) findViewById(R.id.expandableLayout); child.setText("Sets text from a server"); expandableLayout.initLayout(); // Recalculate size of children // recycler view // you must set a ViewHolder#setIsRecyclable(false) and ExpandableLinearLayout#setInRecyclerView(true) @Override public void onBindViewHolder(final ViewHolder holder, final int position) { holder.setIsRecyclable(false); holder.expandableLinearLayout.setInRecyclerView(true); } 解决方案。

dplyr

或者我们也可以将library(dplyr) dt2 <- dt %>% mutate(Group = rep(1:2, times = nrow(.)/2)) %>% split(.$Group) %>% bind_cols() %>% select(-starts_with("Group")) %>% setNames(paste0("COL", 1:ncol(.))) dt2 COL1 COL2 COL3 COL4 1 name1 score1 state1 rating1 2 name2 score2 state2 rating2 包与purrr包一起使用。

dplyr

数据

library(dplyr)
library(purrr)

dt2 <- dt %>%
  mutate(Group = rep(1:2, times = nrow(.)/2)) %>%
  split(.$Group) %>%
  map_dfc(. %>% select(-Group)) %>%
  setNames(paste0("COL", 1:ncol(.)))
dt2
   COL1   COL2   COL3    COL4
1 name1 score1 state1 rating1
2 name2 score2 state2 rating2