Subj Trial Time
1 A 1 250
2 A 2 250
3 A 3 280
4 B 1 250
5 B 2 270
6 B 3 290
以上是我正在使用的数据示例。我有不同的科目( Subj )执行相同的试验(试验)。不幸的是,当试用事件快速连续发生时,我的设备将打印相同的时间值( 请参阅第1行和第2行的时间列 )。
我不能让同一个主题有重复的时间值,但是,不同的主题可以拥有相同的时间值。因此,我需要一种方法来有条件地更改重复项,以便仅更改特定主题中的时间重复。
理想情况下,我想将上面的示例更改为以下内容:
Subj Trial Time
1 A 1 250
2 A 2 250.5
3 A 3 280
4 B 1 250
5 B 2 270
6 B 3 290
关于我如何能够实现这一目标的任何建议?
谢谢!
答案 0 :(得分:2)
使用pipe()
的解决方案。我们可以按 protected override void Initialize()
{
base.Initialize();
IServiceContainer serviceContainer = this as IServiceContainer;
EnvDTE.DTE dte = serviceContainer.GetService(typeof(SDTE)) as EnvDTE.DTE;
var events2 = (EnvDTE80.Events2)dte.Events;
EnvDTE80.WindowVisibilityEvents toolBoxWindowVisibilityEvents = events2.get_WindowVisibilityEvents();
toolBoxWindowVisibilityEvents.WindowShowing += WindowVisibilityEvents_WindowShowing;
}
private void WindowVisibilityEvents_WindowShowing(Window window)
{
if (window.Type == vsWindowType.vsWindowTypeToolWindow && window.Caption == "Start Page")
{
//Start page is opening...
}
}
和from flask import Flask
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'todoapp'
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'
mysql = MySQL(app)
cur = mysql.connection.cursor()
if __name__ == '__main__':
app.run()
对数据进行分组,计算出现次数,如果出现次数超过1,则通过添加dplyr
来更改Subj
。 / p>
Time
数据强>
Time
答案 1 :(得分:2)
与已经提供的解决方案有些类似,但不计算在内。这包括两个解决方案:
base R
:
do.call(rbind, lapply(split(df, list(df$Subj, df$Time)), function(x) {
x$Time <- x$Time + seq(0, by=0.5, length.out=nrow(x))
x
}))
tidyverse
library(dplyr)
df %>%
group_by(Subj, Time) %>%
mutate(Time2 = Time + seq(0, by=0.5, length.out=n()))
他们都应该产生类似于以下内容的东西:
# Subj Trial Time
# A 1 250.0
# A 2 250.5
# B 1 250.0
# B 2 270.0
# A 3 280.0
# B 3 290.0
关键是将数据框拆分为由Subj
和Time
列组合定义的块。从这里开始,剩下的工作很简单:从Time
开始,0.5
列中的值增加0
,这个序列的长度与块的长度相同。
我希望这证明有用。
答案 2 :(得分:1)
以下是base R
选项duplicated
。我们根据列'Subj','Time'创建重复元素的逻辑索引,然后通过向其添加0.5来为这些元素指定'Time'值。
i1 <- duplicated(df1[c('Subj', 'Time')])
df1$Time[i1] <- df1$Time[i1] + 0.5
df1
# Subj Trial Time
#1 A 1 250.0
#2 A 2 250.5
#3 A 3 280.0
#4 B 1 250.0
#5 B 2 270.0
#6 B 3 290.0