我有一个处理时间序列数据的数据框,其中一些列表示金额,而某些列表示百分比。我想要一行来总结每一列,但是很明显,对包含百分比的列求和对我来说不是特别有用。
这是一个示例数据框:
date<-c("2019-04-27", "2019-04-28", "2019-05-01")
name<-c("sam", "sam", "sam")
amt1<-c(3,6,2)
amt2<-c(4,2,7)
percent1<-c(0.25, 0.7, 0.42)
amt3<-c(13,7,4)
percent2<-c(0.54, 0.48, 0.77)
df<-data.frame(date,name, amt1, amt2, percent1, amt3, percent2)
df$date<-as.Date(df$date)
我想要的是包含以下内容的行:
-amt1,amt2,amt3列的总和
-列%1,%2的平均值。
任何人都知道如何实现这一目标吗?
答案 0 :(得分:0)
一种选择是选择public class C : VisualCommanderExt.ICommand
{
public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package)
{
this.DTE = DTE;
EnvDTE.TextSelection ts = TryGetFocusedDocumentSelection();
if (ts != null && ts.IsEmpty)
CopyWord(ts);
else if (IsCommandAvailable("Edit.Copy"))
DTE.ExecuteCommand("Edit.Copy");
}
private void CopyWord(EnvDTE.TextSelection ts)
{
EnvDTE.EditPoint left = ts.ActivePoint.CreateEditPoint();
left.WordLeft();
EnvDTE.EditPoint right = ts.ActivePoint.CreateEditPoint();
right.WordRight();
System.Windows.Clipboard.SetText(left.GetText(right));
}
private EnvDTE.TextSelection TryGetFocusedDocumentSelection()
{
try
{
return DTE.ActiveWindow.Document.Selection as EnvDTE.TextSelection;
}
catch(System.Exception)
{
}
return null;
}
private bool IsCommandAvailable(string commandName)
{
EnvDTE80.Commands2 commands = DTE.Commands as EnvDTE80.Commands2;
if (commands == null)
return false;
EnvDTE.Command command = commands.Item(commandName, 0);
if (command == null)
return false;
return command.IsAvailable;
}
private EnvDTE80.DTE2 DTE;
}
列(numeric
),然后使用select_if
,获得值为{{1}的那些列中的mutate_if
}小于1,在下一步中,对mean
值大于1的列进行all
。(免责声明-OP表示没有列名模式或索引,这是一个OP给出的可能逻辑的一部分)
sum