小编Zac*_*ach的帖子

dply:在R中按字母顺序排列

如果我有一个大的DF(数百和数百)列,其中不同的col_names按字母顺序随机分布:

df.x <- data.frame(2:11, 1:10, rnorm(10))
colnames(df.x) <- c("ID", "string", "delta")
Run Code Online (Sandbox Code Playgroud)

如何按字母顺序按col_name排序所有数据(垂直)?

基本上,我有数百个CSV(sep ="|")文本文件,我需要将它们的列读入单个df,按字母顺序排列这些列,然后使用其他一些dplyf函数来获得最终结果.除了如何按字母顺序排列列之外,我已经解决了所有问题.我不想按字母排序(上下)列,而是col_names的实际垂直方向及其相应的数据.类似于在Excel中剪切和粘贴整列数据.

例如,我回顾了这种方法,但这是按字母顺序排序的行,这不是我想要做的.

如何按列对数据框进行排序?

谢谢!

r dataframe dplyr

31
推荐指数
4
解决办法
2万
查看次数

dplyr中的bind_rows抛出异常错误

希望我不会复制以前存在的一些问题.我正在使用32位Win7机器,RV = 3.2.0,dplyr V = 0.4.1,RStudio 0.98.1103.

有问题的文件是两个读入变量的CSV文件(x,y/sep ="|",header = TRUE,stringsasFactors = FALSE),它们来自同一个Oracle表.用于生成两个文件的查询提取了完全相同的变量(29).

identical(names(x), names(y) > TRUE
Run Code Online (Sandbox Code Playgroud)

但是,当我加载dplyr包并尝试使用'bind_rows'作为dat < - bind_rows(x,y)时,我收到以下错误:

> bind_rows(x,y)
Error: incompatible type (data index: 2, column: 'rmnumber', was collecting: integer (dplyr::Collecter_Impl<13>), incompatible with data of type: factor
In addition: Warning messages:
1: In rbind_all(list(x, ...)) :
  Unequal factor levels: coercing to character
2: In rbind_all(list(x, ...)) :
  Unequal factor levels: coercing to character
3: In rbind_all(list(x, ...)) :
  Unequal factor levels: coercing to character
Run Code Online (Sandbox Code Playgroud)

我查看了列'rmnumber'并验证了该列中的所有内容都是预期的数字或"NA",也与表中的NULL值一样.我也尝试了bind_rows(list(x,y))并返回了相同的错误.

原始"rbind"在这些变量上运行良好,没有明显的精度损失. …

r dplyr

8
推荐指数
1
解决办法
2万
查看次数

将 Excel 文件名与 dplyr::bind_rows .id 相关联

我有大约 50-60 个 Excel 工作簿位于一个目录中。这些 Excel 文件大体上都是一样的。有两张工作表,一张带有说明,另一张在所有工作表中具有相同的整齐数据。列/变量 A 到 J 是我实际想要提取的数据,但我愿意将其全部读入 data.frame。数据输出到 A 到 N 列。

我正在编写一个脚本来提取所有原始数据,到目前为止一切顺利。我的脚本的一部分使用 list.files 的标准方法来构建文件名的“df”。然后,我使用 'lapply' 将所有 excel 文件读入一个列表。现在麻烦来了。

我想使用 dplyr::bind_rows (但我愿意接受其他建议)然后将所有行绑定在一起,因为它们是相同的并共享相同的标题。这在我的概念证明中非常有效。当我使用 dplyr::bind_rows 的 .id 参数时,我得到 1 到 j 作为 id var,它对应于列表中的 data.frame 位置。

files.list <- list.files(pattern='*.xlsx') # list file names in directory
df.list <- lapply(files.list, read_excel) # read excel into a list of dfs
df <- bind_rows(df.list, .id = "id") # bind the rows of the dfs together
Run Code Online (Sandbox Code Playgroud)

是否可以获取实际文件名而不是从 data.frame 读取的列表中的位置?如果是这样,我该怎么做?

r list dplyr

3
推荐指数
1
解决办法
1477
查看次数

获取R中数据帧内每个元素的长度

我有一个向量:

df <- c(65225, 108249, 156508, 29321, 37905, 50175, 62484, 69943, 73723, 
      555, 12, 331, 1000000, 15232, 1433, 441009, 11141414, 050505)
Run Code Online (Sandbox Code Playgroud)

我想找出向量每个元素的长度。

我怎样才能做到这一点?我尝试使用 apply-family 中的一些东西,但不断出现参数错误。我会用一个吗seq_along(length(df))

基本上,输出将是一列数字和一列每个观察的长度。然后,我将能够仅对那些df$dfLen > 5.

loops r

2
推荐指数
1
解决办法
5297
查看次数

标签 统计

r ×4

dplyr ×3

dataframe ×1

list ×1

loops ×1