基于R中不同写入名称的数据聚合
在R中,我有数据基于R中不同写入名称的数据聚合,r,dataframe,aggregate,R,Dataframe,Aggregate,在R中,我有数据 Name number Peter 14 peter 2 hans 11 ... 我的问题是如何找到带有大号字母的名字,并将它们组合成小写字母。例如,我想组合peter和peter以及数字的和,在本例中为14+2=16 假设我有500多个名字,其中一些以小写字母开头,一些以大写字母开头——我一般应该如何解决这个问题 谢谢 好吧,你可以忽略区分大小写。把所有的名字改成大写或小写,然后数一数数量。 例: 图珀(“彼得”) 图珀(“彼得”) 试试: names_
Name number
Peter 14
peter 2
hans 11
...
我的问题是如何找到带有大号字母的名字,并将它们组合成小写字母。例如,我想组合peter
和peter
以及数字的和,在本例中为14+2=16
假设我有500多个名字,其中一些以小写字母开头,一些以大写字母开头——我一般应该如何解决这个问题
谢谢 好吧,你可以忽略区分大小写。把所有的名字改成大写或小写,然后数一数数量。
例:
- 图珀(“彼得”)
- 图珀(“彼得”)
试试:
names_nums <- read.table(text="Name number
Peter 14
peter 2
hans 11", header=T)
sum(names_nums[tolower(names_nums$Name) == "peter",]$number)
谢谢 您可以将aggregate()
与tolower()
结合使用。因此,所有名称仅转换为小字符。然后使用sum
应用聚合。这可以存储到一个新对象,比如说dfAgg
df <- data.frame(name = c("Peter", "peter", "Hans", "hans"), number = c(14,2,11,3))
dfAgg <- aggregate(number ~ tolower(name), data = df, sum)
dfAgg
# tolower(name) number
# hans 14
# peter 16
df
df <- data.frame(name = c("Peter", "peter", "Hans", "hans"), number = c(14,2,11,3))
dfAgg <- aggregate(number ~ tolower(name), data = df, sum)
dfAgg
# tolower(name) number
# hans 14
# peter 16