当R中的另一列满足某些条件时,如何显示一列中的值

当R中的另一列满足某些条件时,如何显示一列中的值,r,R,我希望R能在我的脚本末尾给我一份类似报告的东西,但我找不到合适的函数或问题,因为我不是以英语为母语的人。 我有一个包含数百行的多列数据框。我很好奇,是否有可能以这样的方式报告/获取R的结果,即如果在另一列中满足某些条件,R将只向我报告一列中的某些特定单元格。目前,我正在通过在edit()或fix()函数之后滚动数据帧来实现这一点 以下是一个可重复的示例: structure(list(Date = structure(c(10L, 11L, 13L, 1L), .Label = c("1.5.2

我希望R能在我的脚本末尾给我一份类似报告的东西,但我找不到合适的函数或问题,因为我不是以英语为母语的人。 我有一个包含数百行的多列数据框。我很好奇,是否有可能以这样的方式报告/获取R的结果,即如果在另一列中满足某些条件,R将只向我报告一列中的某些特定单元格。目前,我正在通过在
edit()
fix()
函数之后滚动数据帧来实现这一点

以下是一个可重复的示例:

structure(list(Date = structure(c(10L, 11L, 13L, 1L), .Label = c("1.5.2005", 
"10.5.2005", "11.5.2005", "12.5.2005", "13.5.2005", "14.5.2005", 
"15.5.2005", "16.5.2005", "2.5.2005", "28.4.2005", "29.4.2005", 
"3.5.2005", "30.4.2005", "4.5.2005", "5.5.2005", "6.5.2005", 
"7.5.2005", "8.5.2005", "9.5.2005"), class = "factor"), Day = 118:121, 
    A = c(0L, 0L, 0L, 1L), B = structure(c(1L, 1L, 1L, 1L), .Label = c("0", 
    "0,94", "0,96", "0,98", "1,00", "1,01", "1,02", "1,03", "1,04", 
    "1,05"), class = "factor")), .Names = c("Date", "Day", "A", 
"B"), row.names = c(NA, 4L), class = "data.frame")
例如,A列中第一个出现数字1是在2005年5月1日(到达该数字的那一天是一年中的第121天),因此我想写下如下内容:

Start A: 1.5.2005
Day: 121 
如果B列达到1,00,那么我想得到

B reached: 7.5.2005

我通过
ifelse
print
尝试了它,但这不起作用好吧,我相信有一种方法可以让它打印这些东西,但是获得一个只包含你想要的观察结果的数据框要容易得多

要获取每个日期的第一次出现,可以将
split
head
结合使用

# Split the data on dates
data <- split(data, data$Date)
# Find the first occurrence of each date
data <- head(data, n=1)
# Bind them all back together into one data.frame
do.call('rbind', data)
您也可以只使用data.frames本机的逻辑索引

data <- data[data$B == '1,00',]
数据这是非常基本的。
data <- data[data$B == '1,00',]