Использование базовой функции R aggregate
:
aggregate(value ~ name, dat1, I)
# name value.1 value.2 value.3 value.4
#1 firstName 0.4145 -0.4747 0.0659 -0.5024
#2 secondName -0.8259 0.1669 -0.8962 0.1681
Почему бы не использовать str.isupper()
;
In [2]: word = 'asdf'
In [3]: word[0].isupper()
Out[3]: False
In [4]: word = 'Asdf'
In [5]: word[0].isupper()
Out[5]: True
Синтаксическая ошибка связана с тем, что вам нужны скобки:
range(string.ascii_lowercase)
Но на самом деле вам не следует использовать диапазон. Это так же просто, как:
if word[0] in string.ascii_lowercase
ascii_lowercase
, может привести к проблемам локализации в будущем - лучше использовать isupper (). Например, что, если слово находится на кириллице? Первым символом будет верхний регистр, но он не будет в ascii_lowercase
.
– Alex Martini
8 September 2011 в 21:25
string.ascii_lowercase
не является целым числом и не является допустимым аргументом для range()
.
– geoffspear
8 September 2011 в 21:26
Это встроено для строк:
word = "Hello"
word.istitle() # True
, но обратите внимание, что str.istitle
смотрит, будет ли каждое слово в строке заглавным, поэтому это может дать вам сюрприз:
"Hello world".istitle() # returns False!
Если вы просто хотите проверить самый первый символ строки, используйте это:
word = "Hello world"
word[0].isupper() # True
word = "Hello"
capitals = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if word[0] in capitals:
print("It is a capital.")
Code Review
вместоStack Overflow
. – Ryan 10 June 2018 в 05:28