- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在循环 dplyr tbl_df 中的值,试图打印两列的唯一组合。经过多次反复试验,我只能通过将 tbl_df 转换回标准 data.frame 来准确获得所需的输出。我知道这两种结构之间的主要区别,但我仍然无法理解我看到的不同输出。
例如,使用此数据
hospital <- rep(c("Hospital 1", "Hospital 2", "Hospital 3"), 3)
ward <- LETTERS[1:2]
hospitals <- data.frame(cbind(hospital, ward))
hospitals[order(hospitals$hospital, hospitals$ward), ]
# hospital ward
# 1 Hospital 1 A
# 7 Hospital 1 A
# 4 Hospital 1 B
# 5 Hospital 2 A
# 2 Hospital 2 B
# 8 Hospital 2 B
# 3 Hospital 3 A
# 9 Hospital 3 A
# 6 Hospital 3 B
for(hosp in unique(hospitals$hospital)){
for(wa in unique(hospitals[hospitals$hospital==hosp, "ward"])){
print(paste(hosp, wa, sep=" "))
}
}
#[1] "Hospital 1 A"
#[1] "Hospital 1 B"
#[1] "Hospital 2 B"
#[1] "Hospital 2 A"
#[1] "Hospital 3 A"
#[1] "Hospital 3 B"
hospitals2 <- tbl_df(hospitals)
for(hosp in unique(hospitals2$hospital)){
for(wa in unique(hospitals2[hospitals2$hospital==hosp, "ward"])){
print(paste(hosp, wa, sep=" "))
}
}
#[1] "Hospital 1 A" "Hospital 1 B"
#[1] "Hospital 2 B" "Hospital 2 A"
#[1] "Hospital 3 A" "Hospital 3 B"
最佳答案
你做不到for loop
在 tbl_df
带子集 [
.文档说明了一切:
[
Never simplifies (drops), so always returnsdata.frame
.
hospitals2[hospitals2$hospital==hosp, "ward"]
返回
data.frame
hospitals2[hospitals2$hospital==hosp, "ward"]
#Source: local data frame [3 x 1]
# ward
#1 A
#2 B
#3 A
hospitals[hospitals$hospital==hosp, "ward"]
#[1] A B A
#Levels: A B
[[
提取列向量,例如
for(hosp in unique(hospitals2$hospital)){
for(wa in unique(hospitals[hospitals$hospital==hosp,][["ward"]])){
print(paste(hosp, wa, sep=" "))
}
}
#[1] "Hospital 1 A"
#[1] "Hospital 1 B"
#[1] "Hospital 2 B"
#[1] "Hospital 2 A"
#[1] "Hospital 3 A"
#[1] "Hospital 3 B"
关于r - 使用循环时的 tbl_df 和 data.frame 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28810768/
我正在将 SAS 数据集读入 R。SAS 将缺失的字符值存储为空引号,但幸运的是 zap_empty() 将这些值转换为 NA。 我的数据集包含近 400 个变量,我不想单独检查每个变量。我想做一个循
我试图将真实值保留在 dplyr 表 (tbl_df) 中,但显示四舍五入的版本。我觉得必须有一个打印方法参数来做到这一点。 这是我想要的一个例子: my_tbl % group_by(Species
当我尝试在 S4 类中使用 tbl_df 时,tbl_df 插槽似乎被转换为 list。 library('tibble') setOldClass(c('tbl_df', 'tbl', 'data.
第一次尝试在 R 中进行 OO 编程时,我声明了一个 S4 对象 TestObject,它有两个插槽,其中一个插槽 (test.df) 具有允许的 data.frame 类: library("dpl
我在使用 dplyr 的 tbl_df 和常规 data.frame 时遇到问题。我有一个很大的 tbl_df (500x30K),需要过滤它。所以我想做的是: filter(my.tbl_df, r
在使用 dplyr tbl_df 数据帧进行子设置时,我发现了一些奇怪的行为。当我使用 'matrix' style df[,'a'] 对数据帧进行子集化时它按预期返回一个向量。但是,当我在 tbl_
tibble(以前的 tbl_df)是由 R 中的 dplyr 数据帧操作包创建的数据帧版本。它可以防止长时间意外调用数据框时的表输出。 一旦数据框被tibble/tbl_df包装,是否有命令可以查看
我记得在某处读到 as.tibble() 是 as_data_frame() 的别名,但我不知道到底是什么别名是编程术语。它类似于包装器吗? 所以我想我的问题可能归结为 tbl_df() 和 as_d
我用 .dbf 文件和 dplyr 做了很多工作。 write.dbf() 中有一个错误会阻止将 tbl_df 对象写入 .dbf 文件。 不幸的是,错误消息写得不好,因此很难弄清楚到底发生了什么。
我正在使用以下代码下载一个 mysql 表并将其分配给对象 nycflights library(dplyr) my_db nycflights %>% sample_n(1) Error:
我一直在循环 dplyr tbl_df 中的值,试图打印两列的唯一组合。经过多次反复试验,我只能通过将 tbl_df 转换回标准 data.frame 来准确获得所需的输出。我知道这两种结构之间的主要
Data.frame 允许使用 [ 对列子集进行操作,默认情况下将单列/行输出丢弃到向量。 Dplyr 不允许这样做,deliberately (似乎是因为 coding was an absolut
英文缩写: 我想知道如何从 data.table 中获取唯一的行在某处沿着 dplyr工作流程。从 v0.2 开始,我可以使用 row_number==1 (见:Remove duplicated r
如何强制 dplyr 显示相当小的 data.frame 的所有列和行。下面的ddf对象,例如: df = data.frame(a=rnorm(100), b=c(rep('x', 50), rep
创建小标题时, tbl <- tibble(A=1:5, B=6:10) 结果 class(tbl) 是 [1] "tbl_df" "tbl" "data.frame" 我经常看
使用时 dplyr , tbl_df函数打印一条语句,说明数据框是“本地的”: > mtcars %>% + group_by(gear) Source: local data frame [
我得到了这些数据: > str(gaDataExt) Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 2 obs. of 5 variables: $ da
我是一名优秀的程序员,十分优秀!